Bill Wendling
fdea9930ac
Remove the LowerSetJmp pass. It wasn't used effectively by any of the targets.
...
This is some of my original LLVM code. *wipes tear*
llvm-svn: 136821
2011-08-03 22:18:20 +00:00
Owen Anderson
2331040816
Add accessors for manipulating an MCInst's operands.
...
llvm-svn: 136818
2011-08-03 21:52:15 +00:00
Jakub Staszak
7b30ba0db8
Add more constantness in BlockFrequencyInfo.
...
llvm-svn: 136816
2011-08-03 21:30:57 +00:00
Evan Cheng
5267dfefb3
Kill the export list as well.
...
llvm-svn: 136814
2011-08-03 21:07:01 +00:00
Eli Friedman
afd08dcc2c
New approach to r136737: insert the necessary fences for atomic ops in platform-independent code, since a bunch of platforms (ARM, Mips, PPC, Alpha are the relevant targets here) need to do essentially the same thing.
...
I think this completes the basic CodeGen for atomicrmw and cmpxchg.
llvm-svn: 136813
2011-08-03 21:06:02 +00:00
Bill Wendling
9db96fc81f
Remove CreateUnwind from the IRBuillder.
...
llvm-svn: 136811
2011-08-03 20:53:38 +00:00
Benjamin Kramer
6fbd7b63c2
Remove unused variables.
...
llvm-svn: 136803
2011-08-03 19:53:48 +00:00
Bob Wilson
03c734d202
Some revisions to Devang's change r136759 for merged global debug info.
...
llvm-svn: 136802
2011-08-03 19:42:51 +00:00
Bill Wendling
6eae915356
Go back to the old definition. It's not clear that a 'resume' can be 'outlined' from the function with the landing pad for all platforms.
...
llvm-svn: 136799
2011-08-03 18:37:32 +00:00
Andrew Trick
bbb5c7b0aa
SCEV: Use AssertingVH to catch dangling BasicBlock* when passes forget
...
to notify SCEV of a change. Add forgetLoop in a couple of those places.
llvm-svn: 136797
2011-08-03 18:32:11 +00:00
Andrew Trick
0ba77723bf
whitespace
...
llvm-svn: 136795
2011-08-03 18:28:21 +00:00
Bill Wendling
da7eb90ea1
Explain how clauses are applied.
...
llvm-svn: 136790
2011-08-03 17:17:06 +00:00
Jakob Stoklund Olesen
002075193b
Handle IMPLICIT_DEF instructions in X86FloatingPoint.
...
This fixes PR10575.
llvm-svn: 136787
2011-08-03 16:33:19 +00:00
Jay Foad
095dcdbd48
Use cast<> instead of a C-style cast to get some free assertions.
...
llvm-svn: 136771
2011-08-03 10:05:04 +00:00
Chris Lattner
d4b0ee77a9
fix PR10286, a problem with the .ll printer handling block addresses that are out-of-scope.
...
llvm-svn: 136768
2011-08-03 06:15:41 +00:00
Devang Patel
99a2f0d98c
Use byte offset, instead of element number, to access merged global.
...
llvm-svn: 136759
2011-08-03 01:25:46 +00:00
Nick Lewycky
16af9d24c5
Small cleanups:
...
- use SmallVectorImpl& for the function argument.
- ignore the operands on the GEP, even if they aren't constant! Much as we
pretend the malloc succeeds, we pretend that malloc + whatever-you-GEP'd-by
is not null. It's magic!
llvm-svn: 136757
2011-08-03 01:11:40 +00:00
Bill Wendling
752f75c8ce
Add this back in for now. There are still a few passes which create unwind instructions at the moment.
...
llvm-svn: 136756
2011-08-03 01:07:57 +00:00
Nick Lewycky
82418c24b8
Fix logical error when detecting lifetime intrinsics.
...
Don't replace a gep/bitcast with 'undef' because that will form a "free(undef)"
which in turn means "unreachable". What we wanted was a no-op. Instead, analyze
the whole tree and look for all the instructions we need to delete first, then
delete them second, not relying on the use_list to stay consistent.
llvm-svn: 136752
2011-08-03 00:43:35 +00:00
Bill Wendling
ad3c4a32ea
Replace the 'UnwindInst' check with a check for 'ResumeInst', which also exits
...
the function, because the UnwindInst is going away.
llvm-svn: 136751
2011-08-03 00:30:19 +00:00
Jakob Stoklund Olesen
ec971376f9
Use the precomputed def presence in RAGreedy::calcSpillCost.
...
llvm-svn: 136742
2011-08-02 23:04:08 +00:00
Jakob Stoklund Olesen
ffdbb7cc16
Inform SpillPlacement about blocks with defs.
...
This information is not used for anything yet.
llvm-svn: 136741
2011-08-02 23:04:06 +00:00
Jakob Stoklund Olesen
4b62c6ea69
Rename {First,Last}Use to {First,Last}Instr.
...
With a 'FirstDef' field right there, it is very confusing that FirstUse
refers to an instruction that may be a def.
llvm-svn: 136739
2011-08-02 22:54:14 +00:00
Evan Cheng
c4182308a3
lldb doesn't need the edis dylib any more.
...
llvm-svn: 136738
2011-08-02 22:53:48 +00:00
Eli Friedman
e958558a31
ARM backend support for atomicrmw and cmpxchg with non-monotonic ordering. Not especially pretty, but seems to work well enough. If this looks okay, I'll put together similar patches for Mips, PPC, and Alpha.
...
llvm-svn: 136737
2011-08-02 22:44:16 +00:00
Jakob Stoklund Olesen
eb92b95baf
Add a BlockInfo::FirstDef field.
...
This is either an invalid SlotIndex, or valno->def for the first value
defined inside the block. PHI values are not counted as defined inside
the block.
The FirstDef field will be used when estimating the cost of spilling
around a block.
llvm-svn: 136736
2011-08-02 22:37:22 +00:00
Jakob Stoklund Olesen
7ec9def2ac
Delete BlockInfo::LiveThrough. It wasn't used any more.
...
llvm-svn: 136735
2011-08-02 22:37:20 +00:00
Nick Lewycky
05fed81aa9
Teach InstCombine that lifetime intrincs aren't a real user on the result of a
...
malloc call.
llvm-svn: 136732
2011-08-02 22:08:01 +00:00
Jakob Stoklund Olesen
83062a212f
Extend the SpillPlacement interface with two new features.
...
The PrefBoth constraint is used for blocks that ideally want a live-in
value both on the stack and in a register. This would be used by a block
that has a use before interference forces a spill.
Secondly, add the ChangesValue flag to BlockConstraint. This tells
SpillPlacement if a live-in value on the stack can be reused as a
live-out stack value for free. If the block redefines the virtual
register, a spill would be required for that.
This extra information will be used by SpillPlacement to more accurately
calculate spill costs when a value can exist both on the stack and in a
register.
The simplest example is a basic block that reads the virtual register,
but doesn't change its value. Spilling around such a block requires a
reload, but no spill in the block.
The spiller already knows this, but the spill placer doesn't. That can
sometimes lead to suboptimal regions.
llvm-svn: 136731
2011-08-02 21:53:03 +00:00
Bill Wendling
9f3e3462b8
Add the documentation for the 'landingpad' instruction. Improve the 'invoke'
...
instruction's documentation to reference the landingpad and resume instructions.
llvm-svn: 136729
2011-08-02 21:52:38 +00:00
Rafael Espindola
2b0d064f3b
Move methods in PassManagerBuilder offline.
...
llvm-svn: 136727
2011-08-02 21:50:27 +00:00
Rafael Espindola
73efcf56f6
move PassManagerBuilder.h to IPO. This is a non intuitive place to put it,
...
but it solves a layering violation since things in Support are not supposed to
use things in Transforms.
llvm-svn: 136726
2011-08-02 21:50:24 +00:00
Eli Friedman
043fa7cc86
Add new atomic instructions to SCCP. No functional change, but stops debug spam.
...
llvm-svn: 136723
2011-08-02 21:35:16 +00:00
Nick Lewycky
2f04a6b411
Lifetime intrinsics on undef are dead.
...
llvm-svn: 136722
2011-08-02 21:19:27 +00:00
Chad Rosier
f2c22fe8eb
Update the default bug report url in autoconf.
...
llvm-svn: 136721
2011-08-02 20:53:43 +00:00
Chris Lattner
a780c5c9f1
no need to count the terminators.
...
llvm-svn: 136718
2011-08-02 20:29:13 +00:00
Rafael Espindola
cefc38659a
Assume .cfi_startproc is the first thing in a function. If the function is
...
externally visable, create a local symbol to use in the CFE. If not, use the
function label itself.
Fixes PR10420.
llvm-svn: 136716
2011-08-02 20:24:22 +00:00
Eli Friedman
d185fa3deb
Don't create a ridiculous EXTRACT_ELEMENT. PR10563.
...
The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this.
llvm-svn: 136711
2011-08-02 18:38:35 +00:00
Owen Anderson
48156a8b45
Fix the broken encodings for the VFP vmov.f32 and vmov.f64 instructions, as well as the comments that explain them incorrectly.
...
llvm-svn: 136707
2011-08-02 18:30:00 +00:00
Jim Grosbach
ccb9f07844
Tidy up. 80 columns.
...
llvm-svn: 136705
2011-08-02 18:16:36 +00:00
Jim Grosbach
138b79f1ea
ARM: rename addrmode7 to addr_offset_none.
...
Use a more descriptive name so the code is more self-documenting.
llvm-svn: 136704
2011-08-02 18:07:32 +00:00
Roman Divacky
c2f4208960
Comment out the PPC relocation offset adjustment. It must be done differently.
...
This unbreaks some tests.
llvm-svn: 136692
2011-08-02 16:15:32 +00:00
Bruno Cardoso Lopes
ac0984dc7e
Make this kind of lowering to be supported by 256-bit instructions:
...
shuffle (scalar_to_vector (load (ptr + 4))), undef, <0, 0, 0, 0>
To:
shuffle (vload ptr)), undef, <1, 1, 1, 1>
Fix PR10494
llvm-svn: 136691
2011-08-02 16:06:18 +00:00
Roman Divacky
126f9bf639
Remove trailing semicolon.
...
llvm-svn: 136690
2011-08-02 15:54:03 +00:00
Roman Divacky
7453a0dcd6
Sketch out PowerPC ELF writer. This is enough to get clang -integrated-as
...
to compile a working hello world on FreeBSD/PPC32.
llvm-svn: 136689
2011-08-02 15:51:38 +00:00
Bill Wendling
ea8143f430
Duncan's english is better than mine. :-)
...
llvm-svn: 136684
2011-08-02 06:39:13 +00:00
Bill Wendling
b37af02067
Remove the LLVMBuildUnwind C API function.
...
The 'unwind' function is going away with the new EH rewrite. This is step 0 in
keeping front-ends from using it.
llvm-svn: 136683
2011-08-02 06:20:17 +00:00
Andrew Trick
86f6a3c645
Use consistent terminology for loop exit/exiting blocks. Name change only.
...
llvm-svn: 136677
2011-08-02 04:23:35 +00:00
Benjamin Kramer
5aff5a9498
Remove empty test.
...
llvm-svn: 136675
2011-08-02 02:47:45 +00:00
Owen Anderson
1d291c9425
Revert r136503 and r136480 in an effort to fix non-determinism in the llvm-gcc buildbots on i386. Devang is looking into the root cause.
...
llvm-svn: 136674
2011-08-02 02:23:42 +00:00