oota-llvm.git
14 years agoMake .align parse correctly on platforms where .align is measured in bytes.
Eli Friedman [Mon, 19 Jul 2010 04:17:25 +0000 (04:17 +0000)]
Make .align parse correctly on platforms where .align is measured in bytes.

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

14 years agollvmc: Add a new option type (switch_list).
Mikhail Glushenkov [Mon, 19 Jul 2010 03:16:25 +0000 (03:16 +0000)]
llvmc: Add a new option type (switch_list).

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

14 years agotests: Force another triple.
Daniel Dunbar [Mon, 19 Jul 2010 00:43:58 +0000 (00:43 +0000)]
tests: Force another triple.

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

14 years agoTarget: Give the TargetAsmParser access to the TargetMachine.
Daniel Dunbar [Mon, 19 Jul 2010 00:33:49 +0000 (00:33 +0000)]
Target: Give the TargetAsmParser access to the TargetMachine.
 - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this.

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

14 years agoedis: Save the TargetMachine in the EDDisassembler object.
Daniel Dunbar [Mon, 19 Jul 2010 00:33:43 +0000 (00:33 +0000)]
edis: Save the TargetMachine in the EDDisassembler object.

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

14 years agoTest commit
Michael J. Spencer [Sun, 18 Jul 2010 23:46:13 +0000 (23:46 +0000)]
Test commit

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

14 years agoMC/AsmParser: Stop playing unsafe member function pointer calls, this isn't
Daniel Dunbar [Sun, 18 Jul 2010 22:22:07 +0000 (22:22 +0000)]
MC/AsmParser: Stop playing unsafe member function pointer calls, this isn't
portable enough.
 - Downside is we now double dispatch through a stub function, but this isn't
   performance critical.

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

14 years agotests: Force triples.
Daniel Dunbar [Sun, 18 Jul 2010 21:16:10 +0000 (21:16 +0000)]
tests: Force triples.

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

14 years agoMC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary token
Daniel Dunbar [Sun, 18 Jul 2010 20:15:59 +0000 (20:15 +0000)]
MC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary token
sequences, not just strings.

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

14 years agoMC/AsmParser: Add macro argument substitution support.
Daniel Dunbar [Sun, 18 Jul 2010 19:00:10 +0000 (19:00 +0000)]
MC/AsmParser: Add macro argument substitution support.

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

14 years agoMC/AsmParser: Add basic support for macro instantiation.
Daniel Dunbar [Sun, 18 Jul 2010 18:54:11 +0000 (18:54 +0000)]
MC/AsmParser: Add basic support for macro instantiation.

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

14 years agoMC/AsmParser: Add basic parsing support for .macro definitions.
Daniel Dunbar [Sun, 18 Jul 2010 18:47:21 +0000 (18:47 +0000)]
MC/AsmParser: Add basic parsing support for .macro definitions.

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

14 years agodaniel doesn't hate me, he hates macpython 2.5, which
Chris Lattner [Sun, 18 Jul 2010 18:42:18 +0000 (18:42 +0000)]
daniel doesn't hate me, he hates macpython 2.5, which
is a very reasonable position on life!

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

14 years agoMC/AsmParser: Add .macros_{off,on} support, not that makes sense since we don't
Daniel Dunbar [Sun, 18 Jul 2010 18:38:02 +0000 (18:38 +0000)]
MC/AsmParser: Add .macros_{off,on} support, not that makes sense since we don't
support macros.

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

14 years agoMC/AsmParser: Use Error() instead of calling PrintMessage() directly.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:45 +0000 (18:31 +0000)]
MC/AsmParser: Use Error() instead of calling PrintMessage() directly.

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

14 years agoMC/AsmParser: Fix TokError() to accept a Twine.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:42 +0000 (18:31 +0000)]
MC/AsmParser: Fix TokError() to accept a Twine.

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

14 years agoMC/AsmParser: Hide the AsmParser implementation.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:38 +0000 (18:31 +0000)]
MC/AsmParser: Hide the AsmParser implementation.

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

14 years agoMC: Move several clients to using AsmParser constructor function.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:33 +0000 (18:31 +0000)]
MC: Move several clients to using AsmParser constructor function.

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

14 years agollvm-mc: Fix llvm-mc -as-lex.
Daniel Dunbar [Sun, 18 Jul 2010 18:31:28 +0000 (18:31 +0000)]
llvm-mc: Fix llvm-mc -as-lex.

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

14 years agoFix struct/class mismatch
Douglas Gregor [Sun, 18 Jul 2010 11:47:56 +0000 (11:47 +0000)]
Fix struct/class mismatch

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

14 years agoAdd a testcase for r108639.
Owen Anderson [Sun, 18 Jul 2010 08:57:19 +0000 (08:57 +0000)]
Add a testcase for r108639.

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

14 years agoAdd a DAGCombine xform to fold away redundant float->double->float conversions around...
Owen Anderson [Sun, 18 Jul 2010 08:47:54 +0000 (08:47 +0000)]
Add a DAGCombine xform to fold away redundant float->double->float conversions around sqrt instructions.
I am assured by people more knowledgeable than me that there are no rounding issues in eliminating this.

This fixed <rdar://problem/8197504>.

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

14 years agoAdded -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require
Lang Hames [Sun, 18 Jul 2010 00:57:59 +0000 (00:57 +0000)]
Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require
LoopSplitter be run prior to register allocation.

Entirely for testing purposes at the moment.

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

14 years agofullStopTag cannot happen here, it is handled above
Gabor Greif [Sat, 17 Jul 2010 20:52:46 +0000 (20:52 +0000)]
fullStopTag cannot happen here, it is handled above

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

14 years agoFix what seems like a clear buffer overflow, noticed by cppcheck.
Duncan Sands [Sat, 17 Jul 2010 20:23:37 +0000 (20:23 +0000)]
Fix what seems like a clear buffer overflow, noticed by cppcheck.

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

14 years agoUse isPrologLabel() instead of checking the opcode directly.
Bill Wendling [Sat, 17 Jul 2010 19:18:44 +0000 (19:18 +0000)]
Use isPrologLabel() instead of checking the opcode directly.

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

14 years agothe stackifier is global!
Chris Lattner [Sat, 17 Jul 2010 17:42:04 +0000 (17:42 +0000)]
the stackifier is global!

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

14 years agodoxygenify some comments.
Chris Lattner [Sat, 17 Jul 2010 17:40:51 +0000 (17:40 +0000)]
doxygenify some comments.

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

14 years agoupdate CMakeLists.txt
Zhongxing Xu [Sat, 17 Jul 2010 12:12:42 +0000 (12:12 +0000)]
update CMakeLists.txt

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

14 years agoRemoved unused inRange variable.
Lang Hames [Sat, 17 Jul 2010 11:43:07 +0000 (11:43 +0000)]
Removed unused inRange variable.

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

14 years agoSwitched to array_pod_sort as per Chris's suggestion.
Lang Hames [Sat, 17 Jul 2010 09:21:53 +0000 (09:21 +0000)]
Switched to array_pod_sort as per Chris's suggestion.

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

14 years agoLoopSplitter - intended to split live intervals over loop boundaries.
Lang Hames [Sat, 17 Jul 2010 07:34:01 +0000 (07:34 +0000)]
LoopSplitter - intended to split live intervals over loop boundaries.
Still very much under development. Comments and fixes will be forthcoming.

(This commit includes some small tweaks to LiveIntervals & LoopInfo to support the splitter)

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

14 years agoAnother attempt at getting the clang self-host to like my instcombine patch.
Owen Anderson [Sat, 17 Jul 2010 06:56:35 +0000 (06:56 +0000)]
Another attempt at getting the clang self-host to like my instcombine patch.

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

14 years agoIterating over sets of pointers in a heuristic was a bad idea. Switching
Lang Hames [Sat, 17 Jul 2010 06:31:41 +0000 (06:31 +0000)]
Iterating over sets of pointers in a heuristic was a bad idea. Switching
any command line paramater changed the register allocation produced by
PBQP.

Turns out variety is not the spice of life.

Fixed some comparators, added others. All good now.

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

14 years agoStart of .sleb128/.uleb128 parsing support.
Eli Friedman [Sat, 17 Jul 2010 06:27:28 +0000 (06:27 +0000)]
Start of .sleb128/.uleb128 parsing support.

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

14 years agounit test to go along with r108610
Chris Lattner [Sat, 17 Jul 2010 06:14:03 +0000 (06:14 +0000)]
unit test to go along with r108610

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

14 years agoFix PR7658, a problem where type refinement can trigger
Chris Lattner [Sat, 17 Jul 2010 06:13:52 +0000 (06:13 +0000)]
Fix PR7658, a problem where type refinement can trigger
constant replacement which was botching its handling of
types.  Use of getType() instead of getRawType() was causing
the type map in constant folding to be updated wrong.

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

14 years agoWork-in-progress parsing for ELF .section directive.
Eli Friedman [Sat, 17 Jul 2010 04:29:04 +0000 (04:29 +0000)]
Work-in-progress parsing for ELF .section directive.

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

14 years agoAdd combiner patterns to more effectively utilize the BFI (bitfield insert)
Jim Grosbach [Sat, 17 Jul 2010 03:30:54 +0000 (03:30 +0000)]
Add combiner patterns to more effectively utilize the BFI (bitfield insert)
instruction for non-constant operands. This includes the case referenced
in the README.txt regarding a bitfield copy.

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

14 years agoTest for ELF .size directive.
Eli Friedman [Sat, 17 Jul 2010 03:15:24 +0000 (03:15 +0000)]
Test for ELF .size directive.

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

14 years agoAdd support for parsing .size directives for ELF.
Eli Friedman [Sat, 17 Jul 2010 03:09:18 +0000 (03:09 +0000)]
Add support for parsing .size directives for ELF.

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

14 years agoMC/AsmParser: Lift Run() and TargetParser to base class.
Daniel Dunbar [Sat, 17 Jul 2010 02:26:10 +0000 (02:26 +0000)]
MC/AsmParser: Lift Run() and TargetParser to base class.

Also, add constructor function for creating AsmParser instances.

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

14 years agoadd BFI to getTargetNodeName()
Jim Grosbach [Sat, 17 Jul 2010 01:50:57 +0000 (01:50 +0000)]
add BFI to getTargetNodeName()

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

14 years agoFix logic think-o
Jim Grosbach [Sat, 17 Jul 2010 01:22:19 +0000 (01:22 +0000)]
Fix logic think-o

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

14 years agoRemove unnecessary check that was subsumed into canRealignStack.
Eric Christopher [Sat, 17 Jul 2010 00:33:04 +0000 (00:33 +0000)]
Remove unnecessary check that was subsumed into canRealignStack.

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

14 years agoPropagate alloca alignment information via variable size object frame
Eric Christopher [Sat, 17 Jul 2010 00:28:22 +0000 (00:28 +0000)]
Propagate alloca alignment information via variable size object frame
information.

No functional change yet.

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

14 years agoMake more explicit and add some currently disabled error messages for
Eric Christopher [Sat, 17 Jul 2010 00:27:24 +0000 (00:27 +0000)]
Make more explicit and add some currently disabled error messages for
stack realignment on ARM.

Also check for function attributes as we do on X86 as well as
make explicit that we're checking can as well as needs in this function.

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

14 years agoMake comment a bit more clear as well as return statement since
Eric Christopher [Sat, 17 Jul 2010 00:25:41 +0000 (00:25 +0000)]
Make comment a bit more clear as well as return statement since
needsStackRealignment is currently checking the can conditions as well.

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

14 years agoUpdate comment.
Bill Wendling [Fri, 16 Jul 2010 23:10:00 +0000 (23:10 +0000)]
Update comment.

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

14 years agoAdd basic support to code-gen the ARM/Thumb2 bit-field insert (BFI) instruction
Jim Grosbach [Fri, 16 Jul 2010 23:05:05 +0000 (23:05 +0000)]
Add basic support to code-gen the ARM/Thumb2 bit-field insert (BFI) instruction
and a combine pattern to use it for setting a bit-field to a constant
value. More to come for non-constant stores.

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

14 years agoFix whitespace.
Dan Gohman [Fri, 16 Jul 2010 22:58:39 +0000 (22:58 +0000)]
Fix whitespace.

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

14 years agoConsider this function:
Bill Wendling [Fri, 16 Jul 2010 22:51:10 +0000 (22:51 +0000)]
Consider this function:

  void foo() { __builtin_unreachable(); }

It will output the following on Darwin X86:

_func1:
Leh_func_begin0:
        pushq %rbp
Ltmp0:
        movq %rsp, %rbp
Ltmp1:
Leh_func_end0:

This prolog adds a new Call Frame Information (CFI) row to the FDE with an
address that is not within the address range of the code it describes -- part is
equal to the end of the function -- and therefore results in an invalid EH
frame. If we emit a nop in this situation, then the CFI row is now within the
address range.

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

14 years agoRemove the isMoveInstr() hook.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 22:35:46 +0000 (22:35 +0000)]
Remove the isMoveInstr() hook.

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

14 years agoAvoid isMoveInstr when printing XCore pseudo-moves.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 22:35:37 +0000 (22:35 +0000)]
Avoid isMoveInstr when printing XCore pseudo-moves.

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

14 years agoUse MI.isCopy.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 22:35:34 +0000 (22:35 +0000)]
Use MI.isCopy.

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

14 years agoUse a small local function for a single remaining late isMoveInstr call in
Jakob Stoklund Olesen [Fri, 16 Jul 2010 22:35:32 +0000 (22:35 +0000)]
Use a small local function for a single remaining late isMoveInstr call in
Thumb2ITBlockPass.

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

14 years agoRename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and
Bill Wendling [Fri, 16 Jul 2010 22:20:36 +0000 (22:20 +0000)]
Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and
thus is a much more meaningful name.

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

14 years agoKeep valgrind quiet.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 22:00:33 +0000 (22:00 +0000)]
Keep valgrind quiet.

The isLive() method can read uninitialized memory, but it still gives correct
results.

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

14 years agotidy up
Chris Lattner [Fri, 16 Jul 2010 21:20:46 +0000 (21:20 +0000)]
tidy up

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

14 years agoRemove remaining calls to TII::isMoveInstr.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 21:03:55 +0000 (21:03 +0000)]
Remove remaining calls to TII::isMoveInstr.

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

14 years agoEmit COPY instead of FMR/FMSD instructions for floating point conversion on
Jakob Stoklund Olesen [Fri, 16 Jul 2010 21:03:52 +0000 (21:03 +0000)]
Emit COPY instead of FMR/FMSD instructions for floating point conversion on
PowerPC.

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

14 years agoeliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,
Chris Lattner [Fri, 16 Jul 2010 20:50:13 +0000 (20:50 +0000)]
eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,
so there is no locking involved in type refinement.

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

14 years agoget the first few tags from a precomputed table (count can be increased if desired)
Gabor Greif [Fri, 16 Jul 2010 20:35:19 +0000 (20:35 +0000)]
get the first few tags from a precomputed table (count can be increased if desired)

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

14 years agoAdd missing attributes to cpp backend.
Eli Friedman [Fri, 16 Jul 2010 18:47:20 +0000 (18:47 +0000)]
Add missing attributes to cpp backend.

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

14 years agoAccept registers with P modifier. PR 5314.
Dale Johannesen [Fri, 16 Jul 2010 18:35:46 +0000 (18:35 +0000)]
Accept registers with P modifier.  PR 5314.

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

14 years agoMake llvm-bcanalyzer print out the full enum name for all metadata
Dan Gohman [Fri, 16 Jul 2010 18:28:07 +0000 (18:28 +0000)]
Make llvm-bcanalyzer print out the full enum name for all metadata
code ids, not just some of them.

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

14 years agoTeach PPCInstrInfo::storeRegToStackSlot and loadRegFromStackSlot to add memory
Jakob Stoklund Olesen [Fri, 16 Jul 2010 18:22:00 +0000 (18:22 +0000)]
Teach PPCInstrInfo::storeRegToStackSlot and loadRegFromStackSlot to add memory
operands.

Hopefully this fixes the llvm-gcc-powerpc-darwin9 buildbot. It really shouldn't
since missing memoperands should not affect correctness.

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

14 years agoReorder the contents of various getAnalysisUsage functions, eliminating
Dan Gohman [Fri, 16 Jul 2010 17:58:45 +0000 (17:58 +0000)]
Reorder the contents of various getAnalysisUsage functions, eliminating
a redundant loopsimplify run from the default -O2 sequence.

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

14 years agoRevert r108369, sorting llvm.dbg.declare information by source position,
Dan Gohman [Fri, 16 Jul 2010 17:54:27 +0000 (17:54 +0000)]
Revert r108369, sorting llvm.dbg.declare information by source position,
since it doesn't work for front-ends which don't emit column information
(which includes llvm-gcc in its present configuration), and doesn't
work for clang for K&R style variables where the variables are declared
in a different order from the parameter list.

Instead, make a separate pass through the instructions to collect the
llvm.dbg.declare instructions in order. This ensures that the debug
information for variables is emitted in this order.

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

14 years agoRemove the X86::FP_REG_KILL pseudo-instruction and the X86FloatingPointRegKill
Jakob Stoklund Olesen [Fri, 16 Jul 2010 17:41:44 +0000 (17:41 +0000)]
Remove the X86::FP_REG_KILL pseudo-instruction and the X86FloatingPointRegKill
pass that inserted it.

It is no longer necessary to limit the live ranges of FP registers to a single
basic block.

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

14 years agoSearch for a free FP register instead of just assuming FP7 is not in use.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 17:41:40 +0000 (17:41 +0000)]
Search for a free FP register instead of just assuming FP7 is not in use.

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

14 years agoRemove the rest of my instcombine changes. Back to the drawing board on this one.
Owen Anderson [Fri, 16 Jul 2010 16:39:00 +0000 (16:39 +0000)]
Remove the rest of my instcombine changes.  Back to the drawing board on this one.

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

14 years agoAllow x87 FP registers to be alive globally in a function.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 16:38:12 +0000 (16:38 +0000)]
Allow x87 FP registers to be alive globally in a function.

FP_REG_KILL instructions are still inserted, but can be disabled by passing
-live-x87 to llc. The X87FPRegKillInserterPass is going to be removed shortly.

CFG edges are partioned into bundles where the x87 stack must be allocated
identically. Code is insertad at the end of each basic block that shuffles the
live FP registers to match the outgoing bundles expectations.

This fix is in preparation for some upcoming register allocator improvements
that may extend the live range of registers beyond a basic block, similar to
LICM. It also provides a nice runtime speedup if you are building with
-mfpmath=387.

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

14 years agoRemove extraneous semicolons after member functions
Douglas Gregor [Fri, 16 Jul 2010 15:03:23 +0000 (15:03 +0000)]
Remove extraneous semicolons after member functions

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

14 years agoFeed the right output into FileCheck.
Benjamin Kramer [Fri, 16 Jul 2010 10:58:02 +0000 (10:58 +0000)]
Feed the right output into FileCheck.

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

14 years agoeliminate CallInst::ArgOffset
Gabor Greif [Fri, 16 Jul 2010 09:38:02 +0000 (09:38 +0000)]
eliminate CallInst::ArgOffset

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

14 years agoGet rid of a bunch of duplicated ELF enum values.
Eli Friedman [Fri, 16 Jul 2010 07:53:29 +0000 (07:53 +0000)]
Get rid of a bunch of duplicated ELF enum values.

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

14 years agoA few more minor additions to ELF.h.
Eli Friedman [Fri, 16 Jul 2010 07:48:07 +0000 (07:48 +0000)]
A few more minor additions to ELF.h.

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

14 years agoRemove bogus link.
Eric Christopher [Fri, 16 Jul 2010 06:33:36 +0000 (06:33 +0000)]
Remove bogus link.

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

14 years agoArrays and vectors with different numbers of elements are not equivalent.
Nick Lewycky [Fri, 16 Jul 2010 06:31:12 +0000 (06:31 +0000)]
Arrays and vectors with different numbers of elements are not equivalent.

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

14 years agoRemove unnecessary conditional.
Eric Christopher [Fri, 16 Jul 2010 06:13:24 +0000 (06:13 +0000)]
Remove unnecessary conditional.

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

14 years agoLoopSimplify does not update domfrontier correctly.
Tobias Grosser [Fri, 16 Jul 2010 05:59:45 +0000 (05:59 +0000)]
LoopSimplify does not update domfrontier correctly.

This fixes PR7649.

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

14 years agoAdd dump() to DominanceFrontier
Tobias Grosser [Fri, 16 Jul 2010 05:59:39 +0000 (05:59 +0000)]
Add dump() to DominanceFrontier

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

14 years agoRemove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 04:45:42 +0000 (04:45 +0000)]
Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.

TII::isMoveInstr is going tobe completely removed.

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

14 years agoAdd forgotten test case.
Jakob Stoklund Olesen [Fri, 16 Jul 2010 04:45:35 +0000 (04:45 +0000)]
Add forgotten test case.

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

14 years agoUse the source-order scheduler instead of the "fast" scheduler at -O0,
Dan Gohman [Fri, 16 Jul 2010 02:01:19 +0000 (02:01 +0000)]
Use the source-order scheduler instead of the "fast" scheduler at -O0,
because it's more likely to keep debug line information in its original
order.

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

14 years agobuild/Darwin: Add an LLVM_LTO_VERSION_OFFSET make variable to allow offsetting
Daniel Dunbar [Fri, 16 Jul 2010 01:41:38 +0000 (01:41 +0000)]
build/Darwin: Add an LLVM_LTO_VERSION_OFFSET make variable to allow offsetting
the libLTO library version from the actual build version.

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

14 years agoAlso revert 108422, it's causing some test failures.
Eric Christopher [Fri, 16 Jul 2010 01:36:12 +0000 (01:36 +0000)]
Also revert 108422, it's causing some test failures.

Working on testcases for Owen.

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

14 years agobuild/Clang: Build and install libLTO as part of clang-only/install-clang targets.
Daniel Dunbar [Fri, 16 Jul 2010 01:29:50 +0000 (01:29 +0000)]
build/Clang: Build and install libLTO as part of clang-only/install-clang targets.

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

14 years agoFix this test.
Dan Gohman [Fri, 16 Jul 2010 01:28:45 +0000 (01:28 +0000)]
Fix this test.

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

14 years agoThe SelectionDAGBuilder's handling of debug info, on rare
Dale Johannesen [Fri, 16 Jul 2010 00:02:08 +0000 (00:02 +0000)]
The SelectionDAGBuilder's handling of debug info, on rare
occasions, caused code to be generated in a different order.
All cases I've seen involved float softening in the type
legalizer, and this could be perhaps be fixed there, but
it's better not to generate things differently in the first
place.  7797940 (6/29/2010..7/15/2010).

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

14 years agoRevert. This isn't the correct way to go.
Bill Wendling [Thu, 15 Jul 2010 23:42:21 +0000 (23:42 +0000)]
Revert. This isn't the correct way to go.

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

14 years agoFix the order that SCEVExpander considers add operands in so that
Dan Gohman [Thu, 15 Jul 2010 23:38:13 +0000 (23:38 +0000)]
Fix the order that SCEVExpander considers add operands in so that
it doesn't miss an opportunity to form a GEP, regardless of the
relative loop depths of the operands. This fixes rdar://8197217.

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

14 years agoHandle code gen for the unreachable instruction if it's the only instruction in
Bill Wendling [Thu, 15 Jul 2010 23:32:40 +0000 (23:32 +0000)]
Handle code gen for the unreachable instruction if it's the only instruction in
the function. We'll just turn it into a "trap" instruction instead.

The problem with not handling this is that it might generate a prologue without
the equivalent epilogue to go with it:

$ cat t.ll
define void @foo() {
entry:
  unreachable
}
$ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables
        .section        __TEXT,__text,regular,pure_instructions
        .globl  _foo
        .align  4, 0x90
_foo:                                   ## @foo
Leh_func_begin0:
## BB#0:                                ## %entry
        pushq   %rbp
Ltmp0:
        movq    %rsp, %rbp
Ltmp1:
Leh_func_end0:
...

The unwind tables then have bad data in them causing all sorts of problems.

Fixes <rdar://problem/8096481>.

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

14 years agoSplit -enable-finite-only-fp-math to two options:
Evan Cheng [Thu, 15 Jul 2010 22:07:12 +0000 (22:07 +0000)]
Split -enable-finite-only-fp-math to two options:
-enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.

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

14 years agobuild/Darwin: Add a missing directory dependency.
Daniel Dunbar [Thu, 15 Jul 2010 21:51:52 +0000 (21:51 +0000)]
build/Darwin: Add a missing directory dependency.

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

14 years agoremove some unneeded overloads that were causing
Chris Lattner [Thu, 15 Jul 2010 21:24:02 +0000 (21:24 +0000)]
remove some unneeded overloads that were causing
ambiguity problems on some systems.

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

14 years agofix the definitions of ConstTextCoalSection/ConstDataCoalSection
Chris Lattner [Thu, 15 Jul 2010 21:22:00 +0000 (21:22 +0000)]
fix the definitions of ConstTextCoalSection/ConstDataCoalSection
to keep "Text" in sync with the "pure instructions" section attribute.
Lack of this attribute was preventing the assembler from emitting
multibyte noops instructions for templates (and inlines, and other
coalesced stuff) and was causing the assembler to mismatch .o files.

This fixes rdar://8018335

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

14 years agofix indentation and 80 cols
Chris Lattner [Thu, 15 Jul 2010 21:19:31 +0000 (21:19 +0000)]
fix indentation and 80 cols

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

14 years agoRevert 108456. i.e. bring back r108444.
Devang Patel [Thu, 15 Jul 2010 20:57:09 +0000 (20:57 +0000)]
Revert 108456.  i.e. bring back r108444.

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