Dan Gohman
0d3d9ee03e
Enhance CodePlacementOpt's unconditional intra-loop branch elimination logic
...
to be more general and understand more varieties of loops.
Teach CodePlacementOpt to reorganize the basic blocks of a loop so that
they are contiguous. This also includes a fair amount of logic for preserving
fall-through edges while doing so. This fixes a BranchFolding-ism where blocks
which can't be made to use a fall-through edge and don't conveniently fit
anywhere nearby get tossed out to the end of the function.
llvm-svn: 84295
2009-10-17 00:32:43 +00:00
Victor Hernandez
c7d6a8327c
Autoupgrade malloc insts to malloc calls.
...
Update testcases that rely on malloc insts being present.
Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step.
llvm-svn: 84292
2009-10-17 00:00:19 +00:00
Victor Hernandez
264da3274e
HeapAllocSRoA also needs to check if malloc array size can be computed.
...
llvm-svn: 84288
2009-10-16 23:12:25 +00:00
Mon P Wang
1a015acf69
Update tests to use FileCheck
...
llvm-svn: 84282
2009-10-16 22:09:05 +00:00
Mon P Wang
0185b1ea85
Add test case for r84279
...
llvm-svn: 84280
2009-10-16 22:07:19 +00:00
Dan Gohman
99429a00ff
Move zext and sext casts fed by loads into the same block as the
...
load, to help SelectionDAG fold them into the loads, unless
conditions are unfavorable.
llvm-svn: 84271
2009-10-16 20:59:35 +00:00
Devang Patel
8f842d31fd
Parse PHI instruction with attached metadata.
...
llvm-svn: 84264
2009-10-16 18:45:49 +00:00
Devang Patel
d0099a94db
If there is not any llvm instruction associated with each lexical scope encoded in debug info then create such scope on demand for variable info.
...
llvm-svn: 84262
2009-10-16 18:18:03 +00:00
Victor Hernandez
c81923e07c
Invert isSafeToGetMallocArraySize check because we return NULL when we don't know the size.
...
Thanks to Duncan Sands for noticing this bug.
llvm-svn: 84260
2009-10-16 18:07:17 +00:00
Daniel Dunbar
6a19c14968
Force triple in tests.
...
llvm-svn: 84257
2009-10-16 16:30:02 +00:00
Duncan Sands
de3f2c26c6
Check that GVN performs this transform even if the calls
...
themselves are not marked readonly, but only the called
functions.
llvm-svn: 84253
2009-10-16 12:18:23 +00:00
Evan Cheng
03da4dba59
Enable post-alloc scheduling for all ARM variants except for Thumb1.
...
llvm-svn: 84249
2009-10-16 06:11:08 +00:00
Daniel Dunbar
5f339244fb
MC: Tweak variable assignment diagnostics, and make reassignment of non-absolute
...
variables and symbols invalid.
llvm-svn: 84232
2009-10-16 01:57:39 +00:00
Daniel Dunbar
d20cda028a
MC: When parsing a variable reference, substitute absolute variables immediately
...
since they are allowed to be redefined.
llvm-svn: 84230
2009-10-16 01:34:54 +00:00
Sandeep Patel
3f23601b00
Branches must be the last instruction in a Thumb2 IT block. Approved by Evan Cheng.
...
llvm-svn: 84212
2009-10-15 22:25:32 +00:00
Sanjiv Gupta
a07cae65e3
Re-apply 84180 with the fixed test case.
...
llvm-svn: 84195
2009-10-15 19:26:25 +00:00
Jakob Stoklund Olesen
460ceae432
Move Blackfin intrinsics into the Target/Blackfin directory.
...
llvm-svn: 84194
2009-10-15 18:50:52 +00:00
Dan Gohman
c9af381df8
Make CodePlacementOpt align loops, rather than loop headers. The
...
header is just the entry block to the loop, and it needn't be at
the top of the loop in the code layout.
Remove the code that suppressed loop alignment for outer loops,
so that outer loops are aligned.
llvm-svn: 84158
2009-10-15 00:36:22 +00:00
Evan Cheng
2f61e0946a
When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it.
...
llvm-svn: 84153
2009-10-14 23:39:27 +00:00
Nick Lewycky
f01ba005a7
Make use of the result of the loads even though that means adding -instcombine.
...
llvm-svn: 84125
2009-10-14 19:02:13 +00:00
Chris Lattner
6b9044db01
make instcombine's instruction sinking more aggressive in the
...
presence of PHI nodes.
llvm-svn: 84103
2009-10-14 15:21:58 +00:00
Evan Cheng
c1eed9d120
Another BasicAA fix. If a value does not alias a GEP's base pointer, then it
...
cannot alias the GEP. GEP pointer alias rule states this clearly:
A pointer value formed from a getelementptr instruction is associated with the
addresses associated with the first operand of the getelementptr.
llvm-svn: 84079
2009-10-14 06:41:49 +00:00
Evan Cheng
c745bf2d87
Replace test with a simpler hand crafted one.
...
llvm-svn: 84069
2009-10-14 01:45:10 +00:00
Dale Johannesen
d2d4f6cad4
Use llvmgxx for C++ test.
...
llvm-svn: 84066
2009-10-14 00:34:56 +00:00
Dan Gohman
03a7667349
Fix this test to account for a movl $0 being emitted as an xor now,
...
and convert it to FileCheck.
llvm-svn: 84065
2009-10-14 00:28:48 +00:00
Dale Johannesen
dd1e23b72b
Testcases for msasm bit (llvm-gcc 84062).
...
llvm-svn: 84063
2009-10-14 00:10:54 +00:00
Evan Cheng
c10e88db22
Teach basic AA about PHI nodes. If all operands of a phi NoAlias another value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias.
...
llvm-svn: 84038
2009-10-13 22:02:20 +00:00
Devang Patel
39a029d8a3
Optimizer may remove debug info. This test checks debug info for include headers.
...
llvm-svn: 84025
2009-10-13 20:56:38 +00:00
Bob Wilson
3b51560ae4
Revise ARM inline assembly memory operands to require the memory address to
...
be in a register. The previous use of ARM address mode 2 was completely
arbitrary and inappropriate for Thumb. Radar 7137468.
llvm-svn: 84022
2009-10-13 20:50:28 +00:00
Dale Johannesen
fd04c74bc0
Add an "msasm" flag to inline asm as suggested in PR 5125.
...
A little ugliness is accepted to keep the binary file format
compatible. No functional change yet.
llvm-svn: 84020
2009-10-13 20:46:56 +00:00
Devang Patel
41e170eb54
These tests now pass.
...
llvm-svn: 84019
2009-10-13 20:45:18 +00:00
Sandeep Patel
423e42b371
Add ARMv6T2 SBFX/UBFX instructions. Approved by Anton Korobeynikov.
...
llvm-svn: 84009
2009-10-13 18:59:48 +00:00
Chris Lattner
19788ca686
change simplifycfg to not duplicate 'unwind' instructions. Hopefully
...
this will increase the likelihood of common code getting sunk towards
the unwind.
llvm-svn: 83996
2009-10-13 18:13:05 +00:00
Chris Lattner
8d6d09379d
convert to filecheck
...
llvm-svn: 83995
2009-10-13 18:10:05 +00:00
Chris Lattner
6f55a81bb9
rename test
...
llvm-svn: 83994
2009-10-13 18:08:21 +00:00
Chris Lattner
faa0320f27
don't use dead loads as tests.
...
llvm-svn: 83985
2009-10-13 17:39:29 +00:00
Devang Patel
9bd98a440b
Disable this test for now.
...
llvm-svn: 83975
2009-10-13 16:32:09 +00:00
Nick Lewycky
e2782c7614
Teach BasicAA a little something about the atomic intrinsics: they can only
...
modify through the pointer they're given.
llvm-svn: 83959
2009-10-13 07:48:38 +00:00
Nick Lewycky
6f7d8347c1
Add new "memory use marker" intrinsics. These indicate lifetimes and invariant
...
sections of memory objects.
llvm-svn: 83953
2009-10-13 07:03:23 +00:00
Chris Lattner
278c12e1af
remove notcast, it is now dead!
...
llvm-svn: 83938
2009-10-13 04:27:02 +00:00
Chris Lattner
a24b2b8c88
remove two old and nearly useless tests.
...
llvm-svn: 83937
2009-10-13 04:25:24 +00:00
Devang Patel
bd9c3a074d
XFAIL these tests for now.
...
llvm-svn: 83933
2009-10-13 01:51:29 +00:00
Victor Hernandez
70e8505eb1
Memory dependence analysis was incorrectly stopping to scan for stores to a pointer at bitcast uses of a malloc call.
...
It should continue scanning until the malloc call, and this patch fixes that.
llvm-svn: 83931
2009-10-13 01:42:53 +00:00
Chris Lattner
bf43817408
allow this testcase to pass with recent changes. The test hasn't been
...
producing any stores at all for a long time, but ".store." was in some
IR instruction names until recently. This removal caused the test to
start failing. Just make it reject any stores.
llvm-svn: 83895
2009-10-12 20:42:35 +00:00
Dan Gohman
a698d7ac3c
Don't forget to mark RAX as live-out of the function when arranging for
...
it to hold the address of an sret return value, for x86-64 ABI purposes.
Also, fix the test that was originally intended to test this to actually
test it, using FileCheck.
llvm-svn: 83853
2009-10-12 16:36:12 +00:00
Benjamin Kramer
258c7fa33a
Eliminate some redundant llvm-as calls.
...
llvm-svn: 83837
2009-10-12 09:31:55 +00:00
Edward O'Callaghan
1c591f74c7
Missing CHECK: lines makes test exit abnormally.
...
llvm-svn: 83835
2009-10-12 09:01:26 +00:00
Edward O'Callaghan
8720e8c8f3
FileCheck not CheckFile, oops.
...
llvm-svn: 83834
2009-10-12 08:51:28 +00:00
Edward O'Callaghan
6d01608662
Convert InstCombine/call.ll to CheckFile.
...
llvm-svn: 83833
2009-10-12 08:46:47 +00:00
Edward O'Callaghan
cbf75a5dc3
Convert the rest of the InstCombine tests from notcast to FileCheck.
...
llvm-svn: 83828
2009-10-12 07:18:14 +00:00
Nick Lewycky
31a57ea0dd
Remove this part of the test, it never actually tested anything anyways. This
...
unbreaks make check after evocallaghan's changes.
llvm-svn: 83827
2009-10-12 06:32:42 +00:00
Edward O'Callaghan
940da903e2
Fix syntax error missed in converting zext.ll test. Convert 2003-11-13-ConstExprCastCall.ll to FileCheck from notcast.
...
llvm-svn: 83826
2009-10-12 06:23:56 +00:00
Edward O'Callaghan
484b6c2cfc
Convert InstCombine tests from notcast to FileCheck.
...
llvm-svn: 83825
2009-10-12 06:14:06 +00:00
Anton Korobeynikov
4b38ce9f25
Add missed mem-mem move patterns
...
llvm-svn: 83812
2009-10-11 23:03:53 +00:00
Anton Korobeynikov
415c3dc501
Add MSP430 mem-mem insts support. Patch by Brian Lucas with some my refinements
...
llvm-svn: 83811
2009-10-11 23:03:28 +00:00
Anton Korobeynikov
da0508fe15
Add bunch of MSP430 'feature' tests. Patch by Brian Lucas with some my refinements
...
llvm-svn: 83809
2009-10-11 23:02:38 +00:00
Chris Lattner
06462efb47
reduce vec_shuffle2 and merge into vec_shuffle.
...
llvm-svn: 83807
2009-10-11 22:54:48 +00:00
Chris Lattner
6373045e7d
filecheckize vec_shuffle.ll and merge shuffle.ll into it.
...
llvm-svn: 83806
2009-10-11 22:52:15 +00:00
Chris Lattner
79a2f91f65
filecheckize
...
llvm-svn: 83805
2009-10-11 22:45:17 +00:00
Chris Lattner
8308fd9aab
rename test
...
llvm-svn: 83804
2009-10-11 22:44:16 +00:00
Chris Lattner
e660ee0a3b
remove old testcase
...
llvm-svn: 83803
2009-10-11 22:42:06 +00:00
Chris Lattner
1fe15dbbbb
merge test into shift.ll, this also eliminates awful grepping on -stats output
...
llvm-svn: 83802
2009-10-11 22:39:58 +00:00
Chris Lattner
d7969a2796
convert to filecheck.
...
llvm-svn: 83801
2009-10-11 22:36:59 +00:00
Chris Lattner
c6cdbfbfdd
teach instcombine to simplify xor's harder, catching the
...
new testcase.
llvm-svn: 83799
2009-10-11 22:22:13 +00:00
Chris Lattner
7db5b7893d
convert xor2 to filecheck, merge in a random regtest
...
llvm-svn: 83796
2009-10-11 21:42:08 +00:00
Chris Lattner
fd27f8a5b3
generalize a transformation even more: we don't care whether the
...
input the the mul is a zext from bool, just that it is all zeros
other than the low bit. This fixes some phase ordering issues
that would cause us to miss some xforms in mul.ll when the worklist
is visited differently.
llvm-svn: 83794
2009-10-11 21:29:45 +00:00
Chris Lattner
406cb75c6b
simplify a transformation by making it more general.
...
llvm-svn: 83792
2009-10-11 21:22:21 +00:00
Torok Edwin
907ec36943
LICM shouldn't sink/delete debug information. Fix this and add a testcase.
...
For now the metadata of sinked/hoisted instructions is still wrong, but that'll
be fixed when instructions will have debug metadata directly attached.
llvm-svn: 83786
2009-10-11 19:15:54 +00:00
Anton Korobeynikov
6bce6bbf40
Implement 'm' memory operand properly
...
llvm-svn: 83785
2009-10-11 19:14:21 +00:00
Chris Lattner
85c85c5e04
when folding duplicate conditions, delete the
...
now-probably-dead instruction tree feeding it.
llvm-svn: 83778
2009-10-11 18:39:58 +00:00
Chris Lattner
e374382b8f
implement rdar://7293527, a trivial instcombine that llvm-gcc
...
gets but clang doesn't, because it is implemented in GCC's
fold routine.
llvm-svn: 83761
2009-10-11 07:53:15 +00:00
Chris Lattner
97b1405207
implement a transformation in jump threading that is currently
...
done by condprop, but do it in a much more general form. The
basic idea is that we can do a limited form of tail duplication
in the case when we have a branch on a phi. Moving the branch
up in to the predecessor block makes instruction selection
much easier and encourages chained jump threadings.
llvm-svn: 83759
2009-10-11 07:24:57 +00:00
Chris Lattner
4140d8bd5c
another testcase jump threading shouldn't crash on.
...
llvm-svn: 83758
2009-10-11 07:11:11 +00:00
Chris Lattner
ece16f2335
rename a file, remove a poorly reduced testcase.
...
llvm-svn: 83757
2009-10-11 07:10:28 +00:00
Chris Lattner
f99a74e24b
make jump threading on a phi with undef inputs happen.
...
llvm-svn: 83754
2009-10-11 04:18:15 +00:00
Chris Lattner
8d186bfafb
merge two tests.
...
llvm-svn: 83751
2009-10-11 03:55:30 +00:00
Chris Lattner
041c1dca8b
simplify some run lines, convert a test to filecheck.
...
llvm-svn: 83750
2009-10-11 03:54:21 +00:00
Chris Lattner
b6c65faa64
switch GVN to use SSAUpdater. Besides removing a lot of complexity
...
from GVN, this also speeds it up, inserts fewer PHI nodes (see the
testcase) and allows it to remove more loads (due to fewer PHI nodes
standing in the way).
llvm-svn: 83746
2009-10-10 23:50:30 +00:00
Anton Korobeynikov
5b8826b4da
It seems that OR operation does not affect status reg at all.
...
Remove impdef of SRW. This fixes PR4779
llvm-svn: 83739
2009-10-10 22:17:47 +00:00
Dan Gohman
50998f4584
Update this test; the code is the same but it gets counted as one
...
fewer remat.
llvm-svn: 83690
2009-10-09 23:31:04 +00:00
Dan Gohman
7d9dffb413
Fix the x86 test-shrink optimization so that it doesn't shrink comparisons
...
when one of the bits being tested would end up being the sign bit in the
narrower type, and a signed comparison is being performed, since this would
change the result of the signed comparison. This fixes PR5132.
llvm-svn: 83670
2009-10-09 20:35:19 +00:00
Bob Wilson
35b6173a17
Merge a bunch of NEON tests into larger files so they run faster.
...
llvm-svn: 83667
2009-10-09 20:20:54 +00:00
Bob Wilson
6dd3b9ad58
Convert some ARM tests with lots of greps to use FileCheck.
...
llvm-svn: 83651
2009-10-09 17:20:46 +00:00
Evan Cheng
ccd4545ecb
Fix a logic error that caused non-rematable loop invariants loads to be licm'ed out of loop.
...
llvm-svn: 83622
2009-10-09 06:21:52 +00:00
Bob Wilson
e9b19f76cb
Commit one last NEON test to use FileCheck. That's all of them now!
...
llvm-svn: 83617
2009-10-09 05:31:56 +00:00
Bob Wilson
24b84fecf2
Convert more NEON tests to use FileCheck.
...
llvm-svn: 83616
2009-10-09 05:14:48 +00:00
Evan Cheng
be27d61cbc
Reset kill markers after live interval is reconstructed.
...
llvm-svn: 83608
2009-10-09 01:17:11 +00:00
Dale Johannesen
3059924bdd
When considering whether to inline Callee into Caller,
...
and that will make Caller too big to inline, see if it
might be better to inline Caller into its callers instead.
This situation is described in PR 2973, although I haven't
tried the specific case in SPASS.
llvm-svn: 83602
2009-10-09 00:11:32 +00:00
Bob Wilson
84e7967fae
Add codegen support for NEON vst4lane intrinsics with 128-bit vectors.
...
llvm-svn: 83600
2009-10-09 00:01:36 +00:00
Bob Wilson
c409030838
Add codegen support for NEON vst3lane intrinsics with 128-bit vectors.
...
llvm-svn: 83598
2009-10-08 23:51:31 +00:00
Bob Wilson
b851eb356a
Add codegen support for NEON vst2lane intrinsics with 128-bit vectors.
...
llvm-svn: 83596
2009-10-08 23:38:24 +00:00
Bob Wilson
1fd98d67e3
Convert more NEON tests to use FileCheck.
...
llvm-svn: 83595
2009-10-08 23:33:03 +00:00
Bob Wilson
38ba47225a
Add codegen support for NEON vld4lane intrinsics with 128-bit vectors.
...
Also fix some copy-and-paste errors in previous changes.
llvm-svn: 83590
2009-10-08 22:53:57 +00:00
Bob Wilson
f448255063
Convert more NEON tests to use FileCheck.
...
llvm-svn: 83587
2009-10-08 22:33:53 +00:00
Bob Wilson
cf54e934f8
Add codegen support for NEON vld3lane intrinsics with 128-bit vectors.
...
llvm-svn: 83585
2009-10-08 22:27:33 +00:00
Bill Wendling
3dc625cdce
It's possible for a global variable to be optimized out of a metadata object. So
...
we should allow a "null" with this dyn_cast.
llvm-svn: 83573
2009-10-08 20:52:51 +00:00
Anton Korobeynikov
222b86cd54
Use lower16 / upper16 imm modifiers to asmprint 32-bit imms splitted via movt/movw pair.
...
llvm-svn: 83572
2009-10-08 20:43:22 +00:00
Bob Wilson
c2728f44a9
Add codegen support for NEON vld2lane intrinsics with 128-bit vectors.
...
llvm-svn: 83568
2009-10-08 18:56:10 +00:00
Richard Osborne
4e13316bf9
Add some peepholes for signed comparisons using ashr X, X, 32.
...
llvm-svn: 83549
2009-10-08 15:38:17 +00:00
Bob Wilson
7d94eb4722
Convert more NEON tests to use FileCheck.
...
llvm-svn: 83528
2009-10-08 06:02:10 +00:00