Bill Wendling
640ccfdd49
Should have XFAILed this test.
...
llvm-svn: 66086
2009-03-04 22:29:34 +00:00
Bill Wendling
2eef9340a8
Temporarily revert r65994. It was causing rdar://6646455.
...
llvm-svn: 66083
2009-03-04 22:02:09 +00:00
Dan Gohman
31fb085c2e
Re-apply 66008, now that the unfoldMemoryOperand bug is fixed.
...
llvm-svn: 66058
2009-03-04 19:44:21 +00:00
Chris Lattner
5051e7afde
Fix PR3720 by properly propagating alignment information from memcpy/memmove
...
onto element accesses.
llvm-svn: 66053
2009-03-04 19:20:50 +00:00
Owen Anderson
fb7f64ea0d
Add a restore folder, which shaves a dozen or so machineinstrs off oggenc. Update a testcase to check this.
...
llvm-svn: 66029
2009-03-04 08:52:31 +00:00
Evan Cheng
7d9019d0f3
Fix PR3666: isel calls to constant addresses.
...
llvm-svn: 66024
2009-03-04 06:48:53 +00:00
Eli Friedman
1bed40b86a
PR3686: make the legalizer handle bitcast from i80 to x86 long double.
...
llvm-svn: 66021
2009-03-04 06:23:34 +00:00
Dan Gohman
6831e2c2a6
Revert r66004 for now; it's causing a variety of test failures.
...
llvm-svn: 66008
2009-03-04 03:54:19 +00:00
Evan Cheng
32eef2f73f
Rename test.
...
llvm-svn: 66006
2009-03-04 02:47:25 +00:00
Dan Gohman
c6c669cc1e
Teach the x86 backend to eliminate "test" instructions by using the EFLAGS
...
result from add, sub, inc, and dec instructions in simple cases.
llvm-svn: 66004
2009-03-04 02:33:24 +00:00
Evan Cheng
db402a7a49
Fix PR3701. 1. X86 target renamed eflags register to flags. This matches what llvm-gcc generates so codegen knows flags register is being clobbered by inline asm. 2. BURR scheduler should also check if inline asm nodes can clobber "live" physical registers. Previously it was only checking target nodes with implicit defs.
...
llvm-svn: 65996
2009-03-04 01:41:49 +00:00
Devang Patel
94ef615585
If a global constant is dead then global's debug info should not prevent the optimizer in deleting the global. And while deleting global, delete global's debug info also.
...
llvm-svn: 65994
2009-03-04 01:22:23 +00:00
Dale Johannesen
a6f7a45366
Make my earlier patch to skip debug intrinsics
...
when counting work; it was only off by 1.
llvm-svn: 65993
2009-03-04 01:20:34 +00:00
Bill Wendling
93eeea0493
The DAG combiner was performing a BT combine. The BT combine had a value of -1,
...
so it changed it into a 31 via the TLO.ShrinkDemandedConstant() call. Then it
would go through the DAG combiner again. This time it had a value of 31, which
was turned into a -1 by TLI.SimplifyDemandedBits(). This would ping pong
forever.
Teach the TLO.ShrinkDemandedConstant() call not to lower a value if the demanded
value is an XOR of all ones.
llvm-svn: 65985
2009-03-04 00:18:06 +00:00
Dale Johannesen
81b6cd8ce5
Instruction counters must skip the bitcasts that
...
feed into llvm.dbg.declare nodes, as well as
the debug directives themselves.
llvm-svn: 65976
2009-03-03 22:36:47 +00:00
Dale Johannesen
ceed180d4c
When removing a store to an alloca that has only one
...
use, check also for the case where it has two uses,
the other being a llvm.dbg.declare. This is needed so
debug info doesn't affect codegen.
llvm-svn: 65970
2009-03-03 21:26:39 +00:00
Bill Wendling
7fdda71ad7
Remove accidental check-ins in r65960. :-(
...
llvm-svn: 65961
2009-03-03 19:25:16 +00:00
Bill Wendling
8244b700bf
Use > instead of >=. We want to promote aggregates of 128-bytes.
...
llvm-svn: 65960
2009-03-03 19:18:49 +00:00
Zhou Sheng
1e7e86fec4
Ignore the debug info intrinsics when adding instructions into alias sets.
...
llvm-svn: 65934
2009-03-03 06:02:04 +00:00
Dale Johannesen
04fe3500c1
Testcase for line number sinking in InstCombine.
...
llvm-svn: 65911
2009-03-03 01:10:01 +00:00
Devang Patel
e98e6bc27c
If branch conditions' one successor is dominating another non-latch successor then this loop's iteration space can not be restricted. In this example block bb5 is always executed.
...
llvm-svn: 65902
2009-03-02 23:39:14 +00:00
Duncan Sands
51ce06c788
Fix PR3694: add an instcombine micro-optimization that helps
...
clean up when using variable length arrays in llvm-gcc.
llvm-svn: 65832
2009-03-02 09:18:21 +00:00
Nate Begeman
6b41d33726
Fix a problem with DAGCombine on 64b targets where folding
...
extracts + build_vector into a shuffle would fail, because the
type of the new build_vector would not be legal. Try harder to
create a legal build_vector type. Note: this will be totally
irrelevant once vector_shuffle no longer takes a build_vector for
shuffle mask.
New:
_foo:
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
subps %xmm1, %xmm1
mulps %xmm0, %xmm1
addps %xmm0, %xmm1
movaps %xmm1, 0
Old:
_foo:
xorps %xmm0, %xmm0
movss %xmm0, %xmm1
xorps %xmm2, %xmm2
unpcklps %xmm1, %xmm2
pshufd $80, %xmm1, %xmm1
unpcklps %xmm1, %xmm2
pslldq $16, %xmm2
pshufd $57, %xmm2, %xmm1
subps %xmm0, %xmm1
mulps %xmm0, %xmm1
addps %xmm0, %xmm1
movaps %xmm1, 0
llvm-svn: 65791
2009-03-01 23:44:07 +00:00
Duncan Sands
b55953cfc0
Functions marked malloc are noalias return.
...
llvm-svn: 65775
2009-03-01 16:19:31 +00:00
Duncan Sands
2a1baecb38
Adjust this test for recent llvm-gcc changes.
...
llvm-svn: 65771
2009-03-01 15:01:51 +00:00
Evan Cheng
276f9b02c5
Minor optimization:
...
Look for situations like this:
%reg1024<def> = MOV r1
%reg1025<def> = MOV r0
%reg1026<def> = ADD %reg1024, %reg1025
r0 = MOV %reg1026
Commute the ADD to hopefully eliminate an otherwise unavoidable copy.
llvm-svn: 65752
2009-03-01 02:03:43 +00:00
Chris Lattner
50be1d46f2
tweak this to accept asmprinter changes. I have no way to verify this, hopefully
...
the buildbot will work.
llvm-svn: 65750
2009-03-01 01:28:40 +00:00
Chris Lattner
a9611661b0
Fix a pretty awesome bug that only happened in a strange case with anonymous
...
types. This was reading the uint for the keyword after the token was advanced.
llvm-svn: 65743
2009-03-01 00:53:13 +00:00
Chris Lattner
76fd170cbc
adjust for asmprinter change.
...
llvm-svn: 65741
2009-03-01 00:26:51 +00:00
Chris Lattner
f8c9dfe644
adjust for asmprinter change.
...
llvm-svn: 65740
2009-03-01 00:25:46 +00:00
Chris Lattner
3680a9598e
adjust test to make it more robust
...
llvm-svn: 65739
2009-03-01 00:24:40 +00:00
Chris Lattner
f270618038
Fix a long-standing bug and misfeature of the disassembler: when dealing with a
...
stripped .bc file, it didn't make any attempt to try to reuse anonymous types.
This causes an amazing type explosion due to types getting duplicated everywhere
they are referenced and other problems.
This also caused correctness issues, because opaque types are unique for each time
they are uttered in the file. This means that stripping a .bc file could produce
a .ll file that could not be assembled (e.g. 2009-02-28-StripOpaqueName.ll).
This patch fixes both of these issues.
llvm-svn: 65738
2009-03-01 00:03:38 +00:00
Chris Lattner
d3bb67a595
one less space, fixes failure with rebuilt llvm-gcc.
...
llvm-svn: 65728
2009-02-28 22:20:02 +00:00
Bill Wendling
0b35200185
There is a way to specify targets that should succeed. It's the "XTARGET"
...
keyword.
llvm-svn: 65692
2009-02-28 12:11:01 +00:00
Evan Cheng
9c3ce7905e
Last commit accidentially deleted this code.
...
llvm-svn: 65679
2009-02-28 06:02:14 +00:00
Stuart Hastings
2df75807ab
Unable to say "TARGET: *-*-darwin*"; falling back to "XFAIL: linux,ia64,alpha,sparc".
...
llvm-svn: 65667
2009-02-28 00:56:37 +00:00
Stuart Hastings
ccf3b20973
Testcase to insure C strings go to the cstring
...
section. Darwin-specific.
llvm-svn: 65655
2009-02-27 22:35:12 +00:00
Rafael Espindola
880e63bf01
Refactor TLS code and add some tests. The tests and expected results are:
...
pic | declaration | linkage | visibility |
!pic | declaration | external | default | tls1.ll tls2.ll | local exec
pic | declaration | external | default | tls1-pic.ll tls2-pic.ll | general dynamic
!pic | !declaration | external | default | tls3.ll tls4.ll | initial exec
pic | !declaration | external | default | tls3-pic.ll tls4-pic.ll | general dynamic
!pic | declaration | external | hidden | tls7.ll tls8.ll | local exec
pic | declaration | external | hidden | X | local dynamic
!pic | !declaration | external | hidden | tls9.ll tls10.ll | local exec
pic | !declaration | external | hidden | X | local dynamic
!pic | declaration | internal | default | tls5.ll tls6.ll | local exec
pic | declaration | internal | default | X | local dynamic
The ones marked with an X have not been implemented since local dynamic is not implemented.
llvm-svn: 65632
2009-02-27 13:37:18 +00:00
Evan Cheng
257e065df6
Make sure this test passes on linux-ppc.
...
llvm-svn: 65600
2009-02-27 00:51:50 +00:00
Dan Gohman
9385e139d0
Update another test for the LoopInfo::print changes.
...
llvm-svn: 65598
2009-02-27 00:20:19 +00:00
Dan Gohman
06c6037d9f
Update this test for the LoopInfo::print changes.
...
llvm-svn: 65597
2009-02-27 00:17:49 +00:00
Evan Cheng
0ca6e3dba5
MachineLICM CSE should match destination register classes; avoid hoisting implicit_def's.
...
llvm-svn: 65592
2009-02-27 00:02:22 +00:00
Chris Lattner
1f9a1fc2dd
make sure that make fully evaluates variables when determining how compile_c and
...
friends should work. This fixes 2006-11-30-Pubnames.cpp and friends on darwin
with the new -mmacosx-version-min change.
llvm-svn: 65564
2009-02-26 19:19:26 +00:00
Zhou Sheng
670d50e102
Ignore dbg info intrinsics when folding conditional branch to
...
conditional branch predecessors.
llvm-svn: 65509
2009-02-26 06:56:37 +00:00
Evan Cheng
4014a9a5b8
ADDS{D|S}rr_Int and MULS{D|S}rr_Int are not commutable. The users of these intrinsics expect the high bits will not be modified.
...
llvm-svn: 65499
2009-02-26 03:12:02 +00:00
Evan Cheng
86fc9440db
The last commit was overly conservative. It's ok to reuse value that's already marked livein.
...
llvm-svn: 65498
2009-02-26 03:02:21 +00:00
Julien Lerouge
980b081d2a
Fix a typo that prevents hello.mm from running (and runs hello.m twice).
...
llvm-svn: 65493
2009-02-26 00:16:33 +00:00
Evan Cheng
ec34226c2b
Revert BuildVectorSDNode related patches: 65426, 65427, and 65296.
...
llvm-svn: 65482
2009-02-25 22:49:59 +00:00
Chris Lattner
1443cb8f77
Fix PR3667
...
llvm-svn: 65464
2009-02-25 18:20:01 +00:00
Duncan Sands
4111c9d34c
Check that records with a known constant size are not
...
copied field by LLVM field if the record has a variable
sized field in it. The problem is that the LLVM field
will not completely cover the variable sized gcc field.
llvm-svn: 65463
2009-02-25 18:10:49 +00:00