Chris Lattner
c0f971670d
convert to filecheck.
...
llvm-svn: 85734
2009-11-01 19:22:20 +00:00
Chris Lattner
69549467e3
We currently only run ipsccp at LTO time, which is silly. It subsumes
...
ipconstprop and doesn't take much time. Just run it in its place.
This adds a testcase for it, which I plan to expand to cover other
"integration" cases, where we expect the optimizer to be able to
eliminate various things. Due to phase order issues we've regressed
in a number of areas and integration tests are the only way I see to
prevent this.
llvm-svn: 85729
2009-11-01 18:57:49 +00:00
Evan Cheng
0151329ce5
Fix tests.
...
llvm-svn: 85723
2009-11-01 18:13:29 +00:00
Chris Lattner
4cf2980e59
improve x86 codegen support for blockaddress. We now compile
...
the testcase into:
_test1: ## @test1
## BB#0: ## %entry
leaq L_test1_bb6(%rip), %rax
jmpq *%rax
L_test1_bb: ## Address Taken
LBB1_1: ## %bb
movb $1, %al
ret
L_test1_bb6: ## Address Taken
LBB1_2: ## %bb6
movb $2, %al
ret
Note, it is very very strange that BlockAddressSDNode doesn't carry
around TargetFlags. Dan, please fix this.
llvm-svn: 85703
2009-11-01 03:25:03 +00:00
Evan Cheng
de16fff3e8
Use cbz and cbnz instructions.
...
llvm-svn: 85698
2009-10-31 23:46:45 +00:00
Jim Grosbach
5b094f3b36
vml[as].f32 cause stalls in following advanced SIMD instructions. Avoid using
...
them for scalar floating point operations for now.
llvm-svn: 85697
2009-10-31 22:57:36 +00:00
Jim Grosbach
7dfa53d978
Consolidate test files
...
llvm-svn: 85696
2009-10-31 22:20:56 +00:00
Jim Grosbach
acb31ebed1
Change to use FileCheck
...
llvm-svn: 85695
2009-10-31 22:16:14 +00:00
Jim Grosbach
93bcf7b8ce
Make tests more explicit about which instructions are expected.
...
llvm-svn: 85694
2009-10-31 22:14:17 +00:00
Jim Grosbach
84e67e8e5c
Grammar tweak to comments
...
llvm-svn: 85693
2009-10-31 22:12:44 +00:00
Jim Grosbach
c003ed5615
Update test to be more explicit about what instruction sequences are expected for each operation.
...
llvm-svn: 85691
2009-10-31 22:10:38 +00:00
Jim Grosbach
2a445e5d0a
Update test to be more explicit about what instruction sequences are expected for each operation.
...
llvm-svn: 85689
2009-10-31 21:52:58 +00:00
Jim Grosbach
ace75c4288
Expand 64-bit logical shift right inline
...
llvm-svn: 85687
2009-10-31 21:42:19 +00:00
Jim Grosbach
16ae289667
Expand 64-bit arithmetic shift right inline
...
llvm-svn: 85685
2009-10-31 21:00:56 +00:00
Benjamin Kramer
2cc5f86d43
Force triple; darwin's ASM syntax differs from linux's.
...
llvm-svn: 85676
2009-10-31 19:54:06 +00:00
Jim Grosbach
534d2cb249
Expand 64 bit left shift inline rather than using the libcall. For now, this
...
is unconditional. Making it still use the libcall when optimizing for size
would be a good adjustment.
llvm-svn: 85675
2009-10-31 19:38:01 +00:00
Benjamin Kramer
60dac7de40
Add missing colons for FileCheck.
...
llvm-svn: 85674
2009-10-31 19:22:24 +00:00
Jim Grosbach
78a5bcfa02
Convert to FileCheck
...
llvm-svn: 85673
2009-10-31 19:06:53 +00:00
Dan Gohman
61e806613f
Revert r85667. LoopUnroll currently can't call utility functions which
...
auto-update the DominatorTree because it doesn't keep the DominatorTree
current while it works.
llvm-svn: 85670
2009-10-31 17:33:01 +00:00
Dan Gohman
40cec16be1
Merge the enhancements from LoopUnroll's FoldBlockIntoPredecessor into
...
MergeBlockIntoPredecessor. This makes SimplifyCFG slightly more aggressive,
and makes it unnecessary for LoopUnroll to have its own copy of this code.
llvm-svn: 85667
2009-10-31 16:08:00 +00:00
Evan Cheng
9178904e56
It's safe to remat t2LDRpci; Add PseudoSourceValue to load / store's to enable more machine licm. More changes coming.
...
llvm-svn: 85643
2009-10-31 03:39:36 +00:00
Dan Gohman
d5dbd3f588
Add a target triple so that this test behaves consistently across hosts.
...
llvm-svn: 85640
2009-10-31 00:15:28 +00:00
Dan Gohman
14157e31a3
Fix the -mattr line for this test so that it passes on hosts that lack SSSE3.
...
llvm-svn: 85637
2009-10-30 23:18:27 +00:00
Dan Gohman
cd411a597d
Add a testcase for the recent duplicate PHI elimination changes.
...
llvm-svn: 85636
2009-10-30 23:16:10 +00:00
Chris Lattner
3982885b51
if basic blocks are destroyed while there are *just* BlockAddress' hanging
...
around, then zap them. This is analogous to dangling constantexprs hanging
off functions.
llvm-svn: 85627
2009-10-30 22:39:36 +00:00
Dan Gohman
ad6c6a3d33
Fix MachineLICM to use the correct virtual register class when
...
unfolding loads for hoisting. getOpcodeAfterMemoryUnfold returns the
opcode of the original operation without the load, not the load
itself, MachineLICM needs to know the operand index in order to get
the correct register class. Extend getOpcodeAfterMemoryUnfold to
return this information.
llvm-svn: 85622
2009-10-30 22:18:41 +00:00
Daniel Dunbar
45b7d65288
Add missing substitution for %llvmgcc_only.
...
llvm-svn: 85614
2009-10-30 21:13:59 +00:00
Evan Cheng
52d6e56ac9
I forgot to commit this test.
...
llvm-svn: 85608
2009-10-30 20:03:40 +00:00
Rafael Espindola
d4fadd76da
This fixes functions like
...
void f (int a1, int a2, int a3, int a4, int a5,...)
In ARMTargetLowering::LowerFormalArguments if the function has 4 or
more regular arguments we used to set VarArgsFrameIndex using an
offset of 0, which is only correct if the function has exactly 4
regular arguments.
llvm-svn: 85590
2009-10-30 14:33:14 +00:00
Bob Wilson
f13be9d41e
Reimplement BranchFolding change to avoid tail merging for a 1 instruction
...
common tail, except when the OptimizeForSize function attribute is present.
Radar 7338114.
llvm-svn: 85441
2009-10-28 22:10:20 +00:00
Victor Hernandez
917cf94b22
Extend getMallocArraySize() to determine the array size if the malloc argument is:
...
ArraySize * ElementSize
ElementSize * ArraySize
ArraySize << log2(ElementSize)
ElementSize << log2(ArraySize)
Refactor isArrayMallocHelper and delete isSafeToGetMallocArraySize, so that there is only 1 copy of the malloc array determining logic.
Update users of getMallocArraySize() to not bother calling isArrayMalloc() as well.
llvm-svn: 85421
2009-10-28 20:18:55 +00:00
Owen Anderson
cfb2c9edeb
Treat lifetime begin/end markers as allocations/frees respectively for the
...
purposes for GVN/DSE.
llvm-svn: 85383
2009-10-28 07:05:35 +00:00
Owen Anderson
a2584a4c64
Be more careful about invariance reasoning on "store" queries. Stores still need
...
to depend on Ref and ModRef calls within the invariant region.
llvm-svn: 85380
2009-10-28 06:30:52 +00:00
Owen Anderson
6cf32f04df
Add trivial support for the invariance intrinsics to memdep. This logic is
...
purely local for now.
llvm-svn: 85378
2009-10-28 06:18:42 +00:00
Chris Lattner
1efa0c450a
add bitcode reader support for blockaddress. We can now fully
...
round trip blockaddress through .ll and .bc files, so add a testcase.
There are still a bunch of places in the optimizer and other places
that need to be updated to work with these constructs, but at least
the basics are in now.
llvm-svn: 85377
2009-10-28 05:53:48 +00:00
Dan Gohman
076a3b5e25
Teach MachineLICM to unfold loads from constant memory from
...
otherwise unhoistable instructions in order to allow the loads
to be hoisted.
llvm-svn: 85364
2009-10-28 03:21:57 +00:00
Evan Cheng
1babe43881
Use fconsts and fconstd to materialize small fp constants.
...
llvm-svn: 85362
2009-10-28 01:44:26 +00:00
Dan Gohman
00c9f3e905
Mark dead physregdefs dead immediately. This helps MachineSink and
...
MachineLICM and other things which run before LiveVariables is run.
llvm-svn: 85360
2009-10-28 01:13:53 +00:00
Dan Gohman
a9fb025f00
Allow constants of different types to share constant pool entries
...
if they have compatible encodings.
llvm-svn: 85359
2009-10-28 01:12:16 +00:00
Chris Lattner
2bc8002f4c
rename indbr -> indirectbr to appease the residents of #llvm.
...
llvm-svn: 85351
2009-10-28 00:19:10 +00:00
Dale Johannesen
9f175bf461
Add radar number.
...
llvm-svn: 85290
2009-10-27 20:12:38 +00:00
Dale Johannesen
089d45f489
Testcase for llvm-gcc patch 85284.
...
llvm-svn: 85287
2009-10-27 20:06:05 +00:00
Chris Lattner
fdda543cea
add enough support for indirect branch for the feature test to pass
...
(assembler,asmprinter, bc reader+writer) and document it. Codegen
currently aborts on it.
llvm-svn: 85274
2009-10-27 19:13:16 +00:00
Rafael Espindola
9cafe9e468
Add missing testcase.
...
llvm-svn: 85266
2009-10-27 17:59:03 +00:00
Chris Lattner
9ab753239b
change of mind :)
...
llvm-svn: 85258
2009-10-27 17:40:49 +00:00
Chris Lattner
ec7abb4dd5
rename test.
...
llvm-svn: 85256
2009-10-27 17:40:19 +00:00
Edward O'Callaghan
142c2fc0ae
Convert Analysis tests to FileCheck in regards to PR5307.
...
llvm-svn: 85241
2009-10-27 14:54:46 +00:00
Bob Wilson
aadcaed95f
Fix Thumb2 failures by converting them to FileCheck.
...
llvm-svn: 85210
2009-10-27 06:31:02 +00:00
Bob Wilson
cc098c98de
Fix the rest of the ARM failures by converting them to FileCheck.
...
llvm-svn: 85208
2009-10-27 06:16:45 +00:00
Bob Wilson
5753a34ebb
Fix some more failures by converting to FileCheck.
...
llvm-svn: 85207
2009-10-27 05:50:28 +00:00