Owen Anderson [Mon, 19 Jul 2010 19:24:37 +0000 (19:24 +0000)]
Add support for detecting <mach-o/getsect.h> and the getsect() function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108737
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 19 Jul 2010 19:23:32 +0000 (19:23 +0000)]
Tweak per Chris' comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108736
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 19 Jul 2010 18:47:01 +0000 (18:47 +0000)]
Teach computeRegisterProperties() to compute "representative" register class for legal value types. A "representative" register class is the largest legal super-reg register class for a value type. e.g. On i386, GR32 is the rep register class for i8 / i16 / i32; on x86_64 it would be GR64.
This property will be used by the register pressure tracking instruction scheduler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108735
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 19 Jul 2010 18:41:20 +0000 (18:41 +0000)]
Spillers may alter MachineLoopInfo when breaking critical edges, so make it
non-const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108734
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 19 Jul 2010 18:22:40 +0000 (18:22 +0000)]
Testcase for 108732 (
8195660).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108733
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 19 Jul 2010 17:53:55 +0000 (17:53 +0000)]
Fix PR 7662.
Do not try to insert local variable info to a DIE used for function declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108731
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 19 Jul 2010 17:20:38 +0000 (17:20 +0000)]
Since ARM emits inline jump tables as part of the ConstantIsland pass,
it should set the jump table encloding the EK_Inline. This prevents
a second, unused, copy of the table from being emitted after the function
body. PR6581.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108730
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 19 Jul 2010 17:19:40 +0000 (17:19 +0000)]
revert so I can get the right PR# in the log message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108727
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 19 Jul 2010 17:18:28 +0000 (17:18 +0000)]
Since ARM emits inline jump tables as part of the ConstantIsland pass,
it should set the jump table encloding the EK_Inline. This prevents
a second, unused, copy of the table from being emitted after the function
body. PR7499.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108722
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 19 Jul 2010 17:17:22 +0000 (17:17 +0000)]
Remove code duplication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108718
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 19 Jul 2010 17:17:10 +0000 (17:17 +0000)]
Better error reporting for switch_list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108714
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 19 Jul 2010 15:37:03 +0000 (15:37 +0000)]
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108700
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 19 Jul 2010 15:31:07 +0000 (15:31 +0000)]
Expose BasicBlock::moveBefore and moveAfter in C API, patch
by Benjamin Saunders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108699
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 19 Jul 2010 15:22:28 +0000 (15:22 +0000)]
Render MachineFunctions to HTML pages, with options to render register
pressure estimates and liveness alongside.
Still experimental.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108698
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 19 Jul 2010 14:48:15 +0000 (14:48 +0000)]
precompute 20 tags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108695
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 19 Jul 2010 09:36:45 +0000 (09:36 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108691
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 19 Jul 2010 09:33:13 +0000 (09:33 +0000)]
Expose JIT::recompileAndRelinkFunction for use through the C API.
Patch by Benjamin Saunders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108690
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 19 Jul 2010 08:14:26 +0000 (08:14 +0000)]
Testcase for r108687.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108689
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 19 Jul 2010 08:10:24 +0000 (08:10 +0000)]
Remove r108639 now that it is handled by InstCombine instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108688
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 19 Jul 2010 08:09:34 +0000 (08:09 +0000)]
Reimplement r108639 in InstCombine rather than DAGCombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108687
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 07:21:07 +0000 (07:21 +0000)]
X86-64: Mark WINCALL and more tail call instructions as code gen only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108685
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 07:21:04 +0000 (07:21 +0000)]
X86: Mark some tail call pseduo instruction as code gen only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108684
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 07:21:01 +0000 (07:21 +0000)]
X86: Mark In32/64BitMode on LEAVE[64] and SYSEXIT[64].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108683
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 19 Jul 2010 06:26:19 +0000 (06:26 +0000)]
_[A-Z] identifiers are reserved for the implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108682
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 06:14:54 +0000 (06:14 +0000)]
MC/X86: We now match instructions like "incl %eax" correctly for the arch we are
assembling; remove crufty custom cleanup code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108681
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 06:14:49 +0000 (06:14 +0000)]
X86: Mark MOV.*_{TC,NOREX} instruction as code gen only, they aren't real.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108680
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 06:14:44 +0000 (06:14 +0000)]
X86: MOV8o8a, MOV8ao8, etc. are only valid in 32-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108679
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 19 Jul 2010 06:13:10 +0000 (06:13 +0000)]
MC: Add WinCOFFStreamer implementation and merge common code from MachO
into MCObjectStreamer.
Origonal Windows COFF implementation by Nathan Jedffords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108678
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 19 Jul 2010 05:44:09 +0000 (05:44 +0000)]
TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> attributes as part of the matcher.
- Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108677
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 19 Jul 2010 04:52:56 +0000 (04:52 +0000)]
Alphabetize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108675
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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