oota-llvm.git
15 years agoFix PR2967 by not deleting volatile load/stores that occur before unreachable.
Chris Lattner [Wed, 29 Oct 2008 17:46:26 +0000 (17:46 +0000)]
Fix PR2967 by not deleting volatile load/stores that occur before unreachable.
I don't really see this as being needed, but there is little harm from doing
it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58385 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix typo
Torok Edwin [Wed, 29 Oct 2008 16:32:06 +0000 (16:32 +0000)]
fix typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58384 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake the declaration of bzero match size_t on
Duncan Sands [Wed, 29 Oct 2008 15:57:37 +0000 (15:57 +0000)]
Make the declaration of bzero match size_t on
x86-64-linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58383 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix PR2977: LegalizeTypes support for expanding
Duncan Sands [Wed, 29 Oct 2008 14:25:28 +0000 (14:25 +0000)]
Fix PR2977: LegalizeTypes support for expanding
VAARG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58379 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd sanity checking for BUILD_PAIR (I noticed the
Duncan Sands [Wed, 29 Oct 2008 14:22:20 +0000 (14:22 +0000)]
Add sanity checking for BUILD_PAIR (I noticed the
other day that PPC custom lowering could create
a BUILD_PAIR of two f64 with a result type of...
f64! - already fixed).  Fix a place that triggers
the sanity check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58378 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago- More pre-split fixes: spill slot live interval computation bug; restore point bug.
Evan Cheng [Wed, 29 Oct 2008 08:39:34 +0000 (08:39 +0000)]
- More pre-split fixes: spill slot live interval computation bug; restore point bug.
- If a def is spilt, remember its spill index to allow its reuse.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58375 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a FIXME: in ReplaceNodeWith, if the new node
Duncan Sands [Wed, 29 Oct 2008 06:42:19 +0000 (06:42 +0000)]
Fix a FIXME: in ReplaceNodeWith, if the new node
is morphed by AnalyzeNewNode into a previously
processed node, and different result values of
that node are remapped to values with different
nodes, then we could end up using wrong values
here [we were assuming that all results remap
to values with the same underlying node].  This
seems theoretically possible, but I don't have
a testcase.  The meat of the patch is in the
changes to AnalyzeNewNode/AnalyzeNewValue and
ReplaceNodeWith.  While there, I changed names
like RemapNode to RemapValue, since it really
remaps values.  To tell the truth, I would be
much happier if we were only remapping nodes
(it would simplify a bunch of logic, and allow
for some cute speedups) but I haven't yet worked
out how to do that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58372 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix 80 column violations.
Duncan Sands [Wed, 29 Oct 2008 06:33:00 +0000 (06:33 +0000)]
Fix 80 column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58371 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix 80 column violations.
Duncan Sands [Wed, 29 Oct 2008 06:31:03 +0000 (06:31 +0000)]
Fix 80 column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58370 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago- Rewrite code that update register live interval that's split.
Evan Cheng [Wed, 29 Oct 2008 05:06:14 +0000 (05:06 +0000)]
- Rewrite code that update register live interval that's split.
- Create and update spill slot live intervals.
- Lots of bug fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58367 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Removed some cruft.
Oscar Fuentes [Wed, 29 Oct 2008 02:33:15 +0000 (02:33 +0000)]
CMake: Removed some cruft.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58358 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFactor shouldInline method out of Inliner.
Daniel Dunbar [Wed, 29 Oct 2008 01:02:02 +0000 (01:02 +0000)]
Factor shouldInline method out of Inliner.
 - No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58355 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't force things to be Value * when they're not.
David Greene [Wed, 29 Oct 2008 00:30:54 +0000 (00:30 +0000)]
Don't force things to be Value * when they're not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58354 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAssorted comment/naming fixes, 80-col violations, and reindentation.
Daniel Dunbar [Tue, 28 Oct 2008 23:24:26 +0000 (23:24 +0000)]
Assorted comment/naming fixes, 80-col violations, and reindentation.
 - No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58352 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago(A & sext(C)) | (B & ~sext(C) -> C ? A : B
Dan Gohman [Tue, 28 Oct 2008 22:38:57 +0000 (22:38 +0000)]
(A & sext(C)) | (B & ~sext(C)  ->  C ? A : B

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58351 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTake Chris' suggestion and define EnableFastISelVerbose and
Dan Gohman [Tue, 28 Oct 2008 20:35:31 +0000 (20:35 +0000)]
Take Chris' suggestion and define EnableFastISelVerbose and
EnableFastISelAbort variables for Release mode instead of
using ifdefs in the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58350 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agollvm-ld doesn't have a -march option. This fixes PR2961
Chris Lattner [Tue, 28 Oct 2008 20:05:06 +0000 (20:05 +0000)]
llvm-ld doesn't have a -march option.  This fixes PR2961

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58345 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReuse PrintEscapedString for printing names in .ll
Daniel Dunbar [Tue, 28 Oct 2008 19:33:02 +0000 (19:33 +0000)]
Reuse PrintEscapedString for printing names in .ll
 - One functionality change, '\\' in a name is now printed as a hex
   escape instead of "\\\\". This is consistent with other users of
   PrintEscapedString.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58343 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoProtect the code for fast-isel debugging with #ifndef NDEBUG.
Dan Gohman [Tue, 28 Oct 2008 19:08:46 +0000 (19:08 +0000)]
Protect the code for fast-isel debugging with #ifndef NDEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58340 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd some more information to the top-level comment for this file.
Dan Gohman [Tue, 28 Oct 2008 18:47:37 +0000 (18:47 +0000)]
Add some more information to the top-level comment for this file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58339 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport for constant islands in the ARM JIT.
Jim Grosbach [Tue, 28 Oct 2008 18:25:49 +0000 (18:25 +0000)]
Support for constant islands in the ARM JIT.

Since the ARM constant pool handling supercedes the standard LLVM constant
pool entirely, the JIT emitter does not allocate space for the constants,
nor initialize the memory. The constant pool is considered part of the
instruction stream.

Likewise, when resolving relocations into the constant pool, a hook into
the target back end is used to resolve from the constant ID# to the
address where the constant is stored.

For now, the support in the ARM emitter is limited to 32-bit integer. Future
patches will expand this to the full range of constants necessary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58338 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix prototype of print, it is (llvm/Pass.h):
Torok Edwin [Tue, 28 Oct 2008 17:29:23 +0000 (17:29 +0000)]
fix prototype of print, it is (llvm/Pass.h):
  virtual void print(std::ostream &O, const Module *M) const;
instead of
  virtual void print(llvm::OStream &O, const Module *M) const;
as the docs say

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58337 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAvoid calls to setSubgraphColor in release mode. They generate lots of error messages...
Evan Cheng [Tue, 28 Oct 2008 17:23:13 +0000 (17:23 +0000)]
Avoid calls to setSubgraphColor in release mode. They generate lots of error messages and slow down compilation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58336 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDo not allow a user to set the operand for a constant.
Tanya Lattner [Tue, 28 Oct 2008 17:22:40 +0000 (17:22 +0000)]
Do not allow a user to set the operand for a constant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58335 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix duplicate anchor names, and broken anchor links from the TOC
Torok Edwin [Tue, 28 Oct 2008 16:54:34 +0000 (16:54 +0000)]
fix duplicate anchor names, and broken anchor links from the TOC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58332 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix darwin ppc llvm-gcc build breakage: intercept
Duncan Sands [Tue, 28 Oct 2008 15:00:32 +0000 (15:00 +0000)]
Fix darwin ppc llvm-gcc build breakage: intercept
ppcf128 to i32 conversion and expand it into a code
sequence like in LegalizeDAG.  This needs custom
ppc lowering of FP_ROUND_INREG, so turn that on and
make it work with LegalizeTypes.  Probably PPC should
simply custom lower the original conversion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58329 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTurn off LegalizeTypes for this test for the
Duncan Sands [Tue, 28 Oct 2008 09:55:04 +0000 (09:55 +0000)]
Turn off LegalizeTypes for this test for the
moment, while waiting for a proper solution.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58324 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a testcase provided by Bill in which the node
Duncan Sands [Tue, 28 Oct 2008 09:38:36 +0000 (09:38 +0000)]
Fix a testcase provided by Bill in which the node
id could end up being wrong mostly because of
forgetting to remap new nodes that morphed into
processed nodes through CSE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58323 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't produce invalid comparisons after legalize.
Chris Lattner [Tue, 28 Oct 2008 07:11:07 +0000 (07:11 +0000)]
Don't produce invalid comparisons after legalize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58320 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix some whitespace stuff
Chris Lattner [Tue, 28 Oct 2008 07:10:51 +0000 (07:10 +0000)]
fix some whitespace stuff

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58319 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofit in 80 cols
Chris Lattner [Tue, 28 Oct 2008 06:20:17 +0000 (06:20 +0000)]
fit in 80 cols

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58318 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a nasty miscompilation of 176.gcc on linux/x86 where we synthesized
Chris Lattner [Tue, 28 Oct 2008 05:49:35 +0000 (05:49 +0000)]
Fix a nasty miscompilation of 176.gcc on linux/x86 where we synthesized
a memset using 16-byte XMM stores, but where the stack realignment code
didn't work.  Until it does (PR2962) disable use of xmm regs in memcpy
and memset formation for linux and other targets with insufficiently
aligned stacks.

This is part of PR2888

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58317 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomore comment cleanups.
Chris Lattner [Tue, 28 Oct 2008 05:32:08 +0000 (05:32 +0000)]
more comment cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58316 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agocomment cleanups.
Chris Lattner [Tue, 28 Oct 2008 05:31:31 +0000 (05:31 +0000)]
comment cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58315 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf def is in the same mbb as the barrier, spilt the value after the last use before...
Evan Cheng [Tue, 28 Oct 2008 05:28:21 +0000 (05:28 +0000)]
If def is in the same mbb as the barrier, spilt the value after the last use before the barrier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58314 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd command line option to limit the number splits to help debugging.
Evan Cheng [Tue, 28 Oct 2008 01:48:24 +0000 (01:48 +0000)]
Add command line option to limit the number splits to help debugging.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58312 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix the name of the include guard to match the filename.
Dan Gohman [Tue, 28 Oct 2008 00:52:46 +0000 (00:52 +0000)]
Fix the name of the include guard to match the filename.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58310 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAvoid putting a split past the end of the live range; always shrink wrap live interva...
Evan Cheng [Tue, 28 Oct 2008 00:47:49 +0000 (00:47 +0000)]
Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58309 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago- Fix SUBVERSION string to handle x.x.x version number formats.
Bill Wendling [Mon, 27 Oct 2008 23:31:24 +0000 (23:31 +0000)]
- Fix SUBVERSION string to handle x.x.x version number formats.
- Add VERBOSE=1 flag.
- Specify the LLVM_SUBMIT_VERSION when doing the "make install".
  The libLTO.dylib relies upon this flag during that time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58298 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSilence a bogus compile time warning.
Evan Cheng [Mon, 27 Oct 2008 23:29:28 +0000 (23:29 +0000)]
Silence a bogus compile time warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58297 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRe-apply 55137 with fixes.
David Greene [Mon, 27 Oct 2008 23:24:03 +0000 (23:24 +0000)]
Re-apply 55137 with fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58296 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove val# defined by a remat'ed def that is now dead.
Evan Cheng [Mon, 27 Oct 2008 23:21:01 +0000 (23:21 +0000)]
Remove val# defined by a remat'ed def that is now dead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58294 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix bogus comparison of "const char *" with c-string literal. Use strcmp instead.
Ted Kremenek [Mon, 27 Oct 2008 22:43:07 +0000 (22:43 +0000)]
Fix bogus comparison of "const char *" with c-string literal.  Use strcmp instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58290 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHave TableGen emit setSubgraphColor calls under control of a -gen-debug
David Greene [Mon, 27 Oct 2008 21:56:29 +0000 (21:56 +0000)]
Have TableGen emit setSubgraphColor calls under control of a -gen-debug
flag.  Then in a debugger developers can set breakpoints at these calls
to see waht is about to be selected and what the resulting subgraph
looks like.  This really helps when debugging instruction selection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58278 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReturn bool (inserted) from StringSet::insert as for StringMap::insert.
Daniel Dunbar [Mon, 27 Oct 2008 20:50:02 +0000 (20:50 +0000)]
Return bool (inserted) from StringSet::insert as for StringMap::insert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58268 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove tabs from my previous commit.
Cedric Venet [Mon, 27 Oct 2008 19:21:35 +0000 (19:21 +0000)]
Remove tabs from my previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58263 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorename vec_spat -> vec_splat, pointed out by duncan
Chris Lattner [Mon, 27 Oct 2008 18:28:24 +0000 (18:28 +0000)]
rename vec_spat -> vec_splat, pointed out by duncan

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58260 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd setSubgraphColor to color an entire portion of a SelectionDAG. This
David Greene [Mon, 27 Oct 2008 18:17:03 +0000 (18:17 +0000)]
Add setSubgraphColor to color an entire portion of a SelectionDAG.  This
will be used to support debug features in TableGen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58257 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd STL-style typedefs and default constructors to make it possible to
David Greene [Mon, 27 Oct 2008 18:15:15 +0000 (18:15 +0000)]
Add STL-style typedefs and default constructors to make it possible to
use DenseMap in more contexts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58256 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix PR2634. Create new virtual registers from spills early so that we
David Greene [Mon, 27 Oct 2008 17:38:59 +0000 (17:38 +0000)]
Fix PR2634.  Create new virtual registers from spills early so that we
can give it the same stack slot as the spilled interval if it is folded.
This prevents the fold/unfold code from pointing to the wrong register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58255 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove redundant word in tblgen error message.
Matthijs Kooijman [Mon, 27 Oct 2008 15:59:43 +0000 (15:59 +0000)]
Remove redundant word in tblgen error message.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58250 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix UpdateNodeOperands so that it does CSE of calls
Duncan Sands [Mon, 27 Oct 2008 15:30:53 +0000 (15:30 +0000)]
Fix UpdateNodeOperands so that it does CSE of calls
(and a bunch of other node types).  While there, I
added a doNotCSE predicate and used it to reduce code
duplication (some of the duplicated code was wrong...).
This fixes ARM/cse-libcalls.ll when using LegalizeTypes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58249 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a bug in which a node could be added to the
Duncan Sands [Mon, 27 Oct 2008 13:18:32 +0000 (13:18 +0000)]
Fix a bug in which a node could be added to the
worklist twice: UpdateNodeOperands could morph
a new node into a node already on the worklist.
We would then recalculate the NodeId for this
existing node and add it to the worklist.  The
testcase is ARM/cse-libcalls.ll, the problem
showing up once UpdateNodeOperands is taught to
do CSE for calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58246 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAvoid crashing if instruction is not part of a loop.
Torok Edwin [Mon, 27 Oct 2008 10:18:45 +0000 (10:18 +0000)]
Avoid crashing if instruction is not part of a loop.
If it is not part of a loop it is obviously invariant wrt to all loops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58240 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoformatting tweak for intrinsic
Gabor Greif [Mon, 27 Oct 2008 10:17:24 +0000 (10:17 +0000)]
formatting tweak for intrinsic

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58239 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoexport an ID for the instructionNamer, allowing analysis/transformation passes
Torok Edwin [Mon, 27 Oct 2008 10:16:27 +0000 (10:16 +0000)]
export an ID for the instructionNamer, allowing analysis/transformation passes
that need it to require it by ID.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58238 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome grammar fixes, and non-invasive format changes.
Bill Wendling [Mon, 27 Oct 2008 09:27:33 +0000 (09:27 +0000)]
Some grammar fixes, and non-invasive format changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58237 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTurn on LegalizeTypes, the new type legalization
Duncan Sands [Mon, 27 Oct 2008 08:42:46 +0000 (08:42 +0000)]
Turn on LegalizeTypes, the new type legalization
codegen infrastructure, by default.  Please report
any breakage to the mailing lists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58232 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix an obvious copy/pasto.
Nick Lewycky [Mon, 27 Oct 2008 07:28:44 +0000 (07:28 +0000)]
Fix an obvious copy/pasto.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58231 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFor now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80...
Evan Cheng [Mon, 27 Oct 2008 07:14:50 +0000 (07:14 +0000)]
For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58230 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRewrite all the 'PromoteLocallyUsedAlloca[s]' logic. With the power of
Chris Lattner [Mon, 27 Oct 2008 07:05:53 +0000 (07:05 +0000)]
Rewrite all the 'PromoteLocallyUsedAlloca[s]' logic.  With the power of
LargeBlockInfo, we can now dramatically simplify their implementation
and speed them up at the same time.  Now the code has time proportional
to the number of uses of the alloca, not the size of the block.

This also eliminates code that tried to batch up different allocas which
are used in the same blocks, and eliminates the 'retry list' logic which
was baroque and no unneccesary.  In addition to being a speedup for crazy
cases, this is also a nice cleanup:

PromoteMemoryToRegister.cpp |  270 +++++++++++++++-----------------------------
 1 file changed, 96 insertions(+), 174 deletions(-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58229 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agono need to print output
Chris Lattner [Mon, 27 Oct 2008 06:56:35 +0000 (06:56 +0000)]
no need to print output

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58228 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a new LargeBlockInfo helper, which is just a wrapper around
Chris Lattner [Mon, 27 Oct 2008 06:05:26 +0000 (06:05 +0000)]
Add a new LargeBlockInfo helper, which is just a wrapper around
a trivial dense map.  Use this in RewriteSingleStoreAlloca to
avoid aggressively rescanning blocks over and over again.  This
fixes PR2925, speeding up mem2reg on the testcase in that bug
from 4.56s to 0.02s in a debug build on my machine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58227 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomention getresult -> extractvalue (PR2935)
Chris Lattner [Mon, 27 Oct 2008 04:39:23 +0000 (04:39 +0000)]
mention getresult -> extractvalue (PR2935)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58226 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIncrease default setting of tail-merge-threshold to
Dale Johannesen [Mon, 27 Oct 2008 02:10:21 +0000 (02:10 +0000)]
Increase default setting of tail-merge-threshold to
150, based on llvm-test measurements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58225 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove -check-exit-code from bugpoint. This is subsumed by -append-exit-code.
Nick Lewycky [Sun, 26 Oct 2008 23:59:36 +0000 (23:59 +0000)]
Remove -check-exit-code from bugpoint. This is subsumed by -append-exit-code.
Note that -check-exit-code was on by default while -append-exit-code is not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58221 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix PR2953, an off-by-one error handling formatted i/o.
Chris Lattner [Sun, 26 Oct 2008 19:20:47 +0000 (19:20 +0000)]
fix PR2953, an off-by-one error handling formatted i/o.
Thanks to Török Edwin for the awesome reduced testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58199 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove eh output from this test.
Chris Lattner [Sun, 26 Oct 2008 18:53:07 +0000 (18:53 +0000)]
remove eh output from this test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58196 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a default constructor to AsmWriterOperand to make VS2008sp1 happy. (AsmWriterOper...
Cedric Venet [Sun, 26 Oct 2008 15:40:44 +0000 (15:40 +0000)]
Add a default constructor to AsmWriterOperand to make VS2008sp1 happy. (AsmWriterOperand is used in a std::pair, and VS need to generate the default constructor of this pair).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58185 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDo not shrink wrap live interval in a mbb if it's livein any of its successor blocks...
Evan Cheng [Sun, 26 Oct 2008 07:49:03 +0000 (07:49 +0000)]
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58184 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReturn something (i.e. NULL) from an unimplemented virtual function.
Oscar Fuentes [Sun, 26 Oct 2008 04:26:33 +0000 (04:26 +0000)]
Return something (i.e. NULL) from an unimplemented virtual function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58183 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: If we have `clang' under the `tools/' subdirectory, add it to
Oscar Fuentes [Sun, 26 Oct 2008 00:52:09 +0000 (00:52 +0000)]
CMake: If we have `clang' under the `tools/' subdirectory, add it to
the build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58179 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Support for LLVM_USED_LIBS variable, which is the cmake
Oscar Fuentes [Sun, 26 Oct 2008 00:51:05 +0000 (00:51 +0000)]
CMake: Support for LLVM_USED_LIBS variable, which is the cmake
counterpart of USED_LIBS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58178 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Removed unnecessary macro definitions. They are defined in
Oscar Fuentes [Sun, 26 Oct 2008 00:50:03 +0000 (00:50 +0000)]
CMake: Removed unnecessary macro definitions. They are defined in
config.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58177 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: GetTargetTriple: new module for determining the target
Oscar Fuentes [Sun, 26 Oct 2008 00:47:52 +0000 (00:47 +0000)]
CMake: GetTargetTriple: new module for determining the target
triple. Assign to LLVM_HOSTTRIPLE so it figures in config.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58176 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix type-o in ExprMapKeyType::operator ==(). The "&&" was missing.
Bill Wendling [Sun, 26 Oct 2008 00:19:56 +0000 (00:19 +0000)]
Fix type-o in ExprMapKeyType::operator ==(). The "&&" was missing.
Patch by Frits van Bommel!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58175 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle cases where there aren't uses in the barrier mbb.
Evan Cheng [Sat, 25 Oct 2008 23:49:39 +0000 (23:49 +0000)]
Handle cases where there aren't uses in the barrier mbb.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58174 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd storeRegTo{StackSlot|Addr} and loadRegFrom{StackSlot|Addr} descriptions.
Evan Cheng [Sat, 25 Oct 2008 23:08:22 +0000 (23:08 +0000)]
Add storeRegTo{StackSlot|Addr} and loadRegFrom{StackSlot|Addr} descriptions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58164 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake comments and code for QuietWarnings and QuietErrors
Dan Gohman [Sat, 25 Oct 2008 17:57:20 +0000 (17:57 +0000)]
Make comments and code for QuietWarnings and QuietErrors
actually correspond to what their names suggest.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58146 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSDNodes may have at most one Flag result. Update this comment
Dan Gohman [Sat, 25 Oct 2008 17:51:24 +0000 (17:51 +0000)]
SDNodes may have at most one Flag result. Update this comment
to reflect that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58145 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove the code that adds the DeadMachineInstructionElimPass from
Dan Gohman [Sat, 25 Oct 2008 17:46:52 +0000 (17:46 +0000)]
Move the code that adds the DeadMachineInstructionElimPass from
target-independent code to target-specific code. This prevents it
from running on targets that aren't using fast-isel.

In addition to saving compile time, this addresses the problem
that not all targets are prepared for it. In order to use this
pass, all instructions must declare all their fixed uses and
defs of physical registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58144 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRelated to PR2911, reject as invalid non-pointer GC roots.
Gordon Henriksen [Sat, 25 Oct 2008 16:28:35 +0000 (16:28 +0000)]
Related to PR2911, reject as invalid non-pointer GC roots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58143 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport for allocation of TLS variables in the JIT. Allocation of a global
Nicolas Geoffray [Sat, 25 Oct 2008 15:41:43 +0000 (15:41 +0000)]
Support for allocation of TLS variables in the JIT. Allocation of a global
variable is moved to the execution engine. The JIT calls the TargetJITInfo
to allocate thread local storage. Currently, only linux/x86 knows how to
allocate thread local global variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58142 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGenerate code for TLS instructions.
Nicolas Geoffray [Sat, 25 Oct 2008 15:22:06 +0000 (15:22 +0000)]
Generate code for TLS instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58141 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdded MIPS release notes.
Bruno Cardoso Lopes [Sat, 25 Oct 2008 14:56:26 +0000 (14:56 +0000)]
Added MIPS release notes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58139 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Directed bug reports to llvmbugs.
Oscar Fuentes [Sat, 25 Oct 2008 03:49:35 +0000 (03:49 +0000)]
CMake: Directed bug reports to llvmbugs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58134 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: lib/Target/ARM/AsmPrinter/CMakeLists.txt added.
Oscar Fuentes [Sat, 25 Oct 2008 03:40:32 +0000 (03:40 +0000)]
CMake: lib/Target/ARM/AsmPrinter/CMakeLists.txt added.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58133 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: MSVC++ no longer uses a special configuration method.
Oscar Fuentes [Sat, 25 Oct 2008 03:29:36 +0000 (03:29 +0000)]
CMake: MSVC++ no longer uses a special configuration method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58132 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Sync'ed DataTypes.h.cmake with DataTypes.h.in.
Oscar Fuentes [Sat, 25 Oct 2008 03:25:11 +0000 (03:25 +0000)]
CMake: Sync'ed DataTypes.h.cmake with DataTypes.h.in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58131 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Cross-platform support for using pre-generated llvmAsmParser.cpp and llvmAsmPa...
Oscar Fuentes [Sat, 25 Oct 2008 03:19:08 +0000 (03:19 +0000)]
CMake: Cross-platform support for using pre-generated llvmAsmParser.cpp and llvmAsmParser.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58130 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill...
Evan Cheng [Sat, 25 Oct 2008 00:52:41 +0000 (00:52 +0000)]
If val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58129 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMark MFCR as reading all condition code registers.
Dale Johannesen [Fri, 24 Oct 2008 22:08:01 +0000 (22:08 +0000)]
Mark MFCR as reading all condition code registers.
Prevents some more overzealous deletions (mostly
in AltiVec code).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58121 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRewrite logic to figure out whether LR needs to
Dale Johannesen [Fri, 24 Oct 2008 21:24:23 +0000 (21:24 +0000)]
Rewrite logic to figure out whether LR needs to
be saved/restored in the prolog/epilog.  We need
to do this iff something in the function stores
into it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58116 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBe kind to non-x86 hosts.
Dale Johannesen [Fri, 24 Oct 2008 21:20:25 +0000 (21:20 +0000)]
Be kind to non-x86 hosts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58113 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove the note to the correct README
Torok Edwin [Fri, 24 Oct 2008 19:23:07 +0000 (19:23 +0000)]
move the note to the correct README

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58104 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd note about va_arg code on x86 and x86-64
Torok Edwin [Fri, 24 Oct 2008 19:20:05 +0000 (19:20 +0000)]
add note about va_arg code on x86 and x86-64

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58103 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a pasto.
Evan Cheng [Fri, 24 Oct 2008 18:46:44 +0000 (18:46 +0000)]
Fix a pasto.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58102 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix translateX86CC: if SetCCOpcode is SETULE and
Duncan Sands [Fri, 24 Oct 2008 13:03:10 +0000 (13:03 +0000)]
Fix translateX86CC: if SetCCOpcode is SETULE and
LHS is a foldable load, then LHS and RHS are swapped
and SetCCOpcode is changed to SETUGT.  But the later
code is expecting operands to be the wrong way round
for SETUGT, but they are not in this case, resulting
in an inverted compare.  The solution is to move the
load normalization before the correction for SETUGT.
This bug was tickled by LegalizeTypes which happened
to legalize the testcase slightly differently to
LegalizeDAG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58092 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoModify the cmake build system so that if it doesn't find bison, it will use the prege...
Cedric Venet [Fri, 24 Oct 2008 11:24:33 +0000 (11:24 +0000)]
Modify the cmake build system so that if it doesn't find bison, it will use the pregenerated file in from the svn (.cvs). Work only for windows for the moment. Tested on Vista64 with MSVC2008express.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58090 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a file to VC++ proj.
Steve Naroff [Fri, 24 Oct 2008 10:38:57 +0000 (10:38 +0000)]
Add a file to VC++ proj.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58089 91177308-0d34-0410-b5e6-96231b3b80d8