Eli Friedman
e758dc641d
Add support for parsing .size directives for ELF.
...
llvm-svn: 108606
2010-07-17 03:09:18 +00:00
Daniel Dunbar
4dca88a1e9
MC/AsmParser: Lift Run() and TargetParser to base class.
...
Also, add constructor function for creating AsmParser instances.
llvm-svn: 108604
2010-07-17 02:26:10 +00:00
Jim Grosbach
e52a4aff12
add BFI to getTargetNodeName()
...
llvm-svn: 108603
2010-07-17 01:50:57 +00:00
Jim Grosbach
5e095020ae
Fix logic think-o
...
llvm-svn: 108601
2010-07-17 01:22:19 +00:00
Eric Christopher
00b8fa89c8
Remove unnecessary check that was subsumed into canRealignStack.
...
llvm-svn: 108588
2010-07-17 00:33:04 +00:00
Eric Christopher
b397b001b9
Propagate alloca alignment information via variable size object frame
...
information.
No functional change yet.
llvm-svn: 108583
2010-07-17 00:28:22 +00:00
Eric Christopher
033201e862
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.
llvm-svn: 108582
2010-07-17 00:27:24 +00:00
Eric Christopher
cfd5cd156c
Make comment a bit more clear as well as return statement since
...
needsStackRealignment is currently checking the can conditions as well.
llvm-svn: 108581
2010-07-17 00:25:41 +00:00
Bill Wendling
16742654a6
Update comment.
...
llvm-svn: 108571
2010-07-16 23:10:00 +00:00
Jim Grosbach
749f4fca0a
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.
llvm-svn: 108570
2010-07-16 23:05:05 +00:00
Dan Gohman
820e65129a
Fix whitespace.
...
llvm-svn: 108569
2010-07-16 22:58:39 +00:00
Bill Wendling
85d6ed81b7
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.
llvm-svn: 108568
2010-07-16 22:51:10 +00:00
Jakob Stoklund Olesen
44949b2e1b
Remove the isMoveInstr() hook.
...
llvm-svn: 108567
2010-07-16 22:35:46 +00:00
Jakob Stoklund Olesen
24994a5d4c
Avoid isMoveInstr when printing XCore pseudo-moves.
...
llvm-svn: 108566
2010-07-16 22:35:37 +00:00
Jakob Stoklund Olesen
c73aa71e90
Use MI.isCopy.
...
llvm-svn: 108565
2010-07-16 22:35:34 +00:00
Jakob Stoklund Olesen
d073973e61
Use a small local function for a single remaining late isMoveInstr call in
...
Thumb2ITBlockPass.
llvm-svn: 108564
2010-07-16 22:35:32 +00:00
Bill Wendling
e2833a21c2
Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and
...
thus is a much more meaningful name.
llvm-svn: 108563
2010-07-16 22:20:36 +00:00
Jakob Stoklund Olesen
41b1ea4fc9
Keep valgrind quiet.
...
The isLive() method can read uninitialized memory, but it still gives correct
results.
llvm-svn: 108561
2010-07-16 22:00:33 +00:00
Chris Lattner
02dc24e49a
tidy up
...
llvm-svn: 108560
2010-07-16 21:20:46 +00:00
Jakob Stoklund Olesen
1fb08e33b9
Remove remaining calls to TII::isMoveInstr.
...
llvm-svn: 108556
2010-07-16 21:03:55 +00:00
Jakob Stoklund Olesen
9521e574f8
Emit COPY instead of FMR/FMSD instructions for floating point conversion on
...
PowerPC.
llvm-svn: 108555
2010-07-16 21:03:52 +00:00
Chris Lattner
663dd0eb36
eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,
...
so there is no locking involved in type refinement.
llvm-svn: 108553
2010-07-16 20:50:13 +00:00
Gabor Greif
4121df768b
get the first few tags from a precomputed table (count can be increased if desired)
...
llvm-svn: 108549
2010-07-16 20:35:19 +00:00
Eli Friedman
616313e9c6
Add missing attributes to cpp backend.
...
llvm-svn: 108547
2010-07-16 18:47:20 +00:00
Dale Johannesen
80b46398ab
Accept registers with P modifier. PR 5314.
...
llvm-svn: 108545
2010-07-16 18:35:46 +00:00
Dan Gohman
f4d2b52ffe
Make llvm-bcanalyzer print out the full enum name for all metadata
...
code ids, not just some of them.
llvm-svn: 108543
2010-07-16 18:28:07 +00:00
Jakob Stoklund Olesen
701cbc5c89
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.
llvm-svn: 108540
2010-07-16 18:22:00 +00:00
Dan Gohman
b5593f8fda
Reorder the contents of various getAnalysisUsage functions, eliminating
...
a redundant loopsimplify run from the default -O2 sequence.
llvm-svn: 108539
2010-07-16 17:58:45 +00:00
Dan Gohman
444c76a3b1
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.
llvm-svn: 108538
2010-07-16 17:54:27 +00:00
Jakob Stoklund Olesen
858d6bb512
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.
llvm-svn: 108536
2010-07-16 17:41:44 +00:00
Jakob Stoklund Olesen
5fbe7d869c
Search for a free FP register instead of just assuming FP7 is not in use.
...
llvm-svn: 108535
2010-07-16 17:41:40 +00:00
Owen Anderson
ca2a306a1a
Remove the rest of my instcombine changes. Back to the drawing board on this one.
...
llvm-svn: 108530
2010-07-16 16:39:00 +00:00
Jakob Stoklund Olesen
d578c5af7e
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.
llvm-svn: 108529
2010-07-16 16:38:12 +00:00
Douglas Gregor
9101acaab9
Remove extraneous semicolons after member functions
...
llvm-svn: 108525
2010-07-16 15:03:23 +00:00
Benjamin Kramer
710832b0e6
Feed the right output into FileCheck.
...
llvm-svn: 108523
2010-07-16 10:58:02 +00:00
Gabor Greif
17c48ecd68
eliminate CallInst::ArgOffset
...
llvm-svn: 108522
2010-07-16 09:38:02 +00:00
Eli Friedman
a0458f78a8
Get rid of a bunch of duplicated ELF enum values.
...
llvm-svn: 108520
2010-07-16 07:53:29 +00:00
Eli Friedman
b777182abe
A few more minor additions to ELF.h.
...
llvm-svn: 108519
2010-07-16 07:48:07 +00:00
Eric Christopher
9098774a2e
Remove bogus link.
...
llvm-svn: 108518
2010-07-16 06:33:36 +00:00
Nick Lewycky
1b4a83430b
Arrays and vectors with different numbers of elements are not equivalent.
...
llvm-svn: 108517
2010-07-16 06:31:12 +00:00
Eric Christopher
00c613aebe
Remove unnecessary conditional.
...
llvm-svn: 108516
2010-07-16 06:13:24 +00:00
Tobias Grosser
9c86be4570
LoopSimplify does not update domfrontier correctly.
...
This fixes PR7649.
llvm-svn: 108513
2010-07-16 05:59:45 +00:00
Tobias Grosser
97dc00d1d8
Add dump() to DominanceFrontier
...
llvm-svn: 108512
2010-07-16 05:59:39 +00:00
Jakob Stoklund Olesen
bcee53a2b8
Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.
...
TII::isMoveInstr is going tobe completely removed.
llvm-svn: 108507
2010-07-16 04:45:42 +00:00
Jakob Stoklund Olesen
114bab20ae
Add forgotten test case.
...
llvm-svn: 108506
2010-07-16 04:45:35 +00:00
Dan Gohman
5e485c833f
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.
llvm-svn: 108496
2010-07-16 02:01:19 +00:00
Daniel Dunbar
b55ca8e447
build/Darwin: Add an LLVM_LTO_VERSION_OFFSET make variable to allow offsetting
...
the libLTO library version from the actual build version.
llvm-svn: 108495
2010-07-16 01:41:38 +00:00
Eric Christopher
5eef314caf
Also revert 108422, it's causing some test failures.
...
Working on testcases for Owen.
llvm-svn: 108494
2010-07-16 01:36:12 +00:00
Daniel Dunbar
bf6ad6f06f
build/Clang: Build and install libLTO as part of clang-only/install-clang targets.
...
llvm-svn: 108493
2010-07-16 01:29:50 +00:00
Dan Gohman
39c67ace89
Fix this test.
...
llvm-svn: 108491
2010-07-16 01:28:45 +00:00