Owen Anderson
646c3e1e3d
Forgot to commit these.
...
llvm-svn: 85180
2009-10-26 23:56:52 +00:00
Owen Anderson
a8d6745830
Add a straight-forward implementation of SCCVN for aggressively eliminating scalar redundancies.
...
llvm-svn: 85179
2009-10-26 23:55:47 +00:00
Evan Cheng
a883c2ebb7
Change ARM asm strings to separate opcode from operands with a tab instead of a space.
...
llvm-svn: 85178
2009-10-26 23:45:59 +00:00
Victor Hernandez
d6e238c611
Remove all references to MallocInst and FreeInst
...
llvm-svn: 85177
2009-10-26 23:44:29 +00:00
Victor Hernandez
673c036bc7
Remove FreeInst.
...
Remove LowerAllocations pass.
Update some more passes to treate free calls just like they were treating FreeInst.
llvm-svn: 85176
2009-10-26 23:43:48 +00:00
Bob Wilson
5a870f848e
Try to get ahead of Johnny Chen and pro-actively add some more ARM encoding
...
bits. Johnny, please review -- I do not have a good track record of getting
these right.
llvm-svn: 85173
2009-10-26 22:59:12 +00:00
Edward O'Callaghan
e9e8913261
Convert a few tests to FileCheck for PR5307.
...
llvm-svn: 85171
2009-10-26 22:52:03 +00:00
Bob Wilson
ace97183c7
Fix ARM encoding typo: Opcod3 is not passed to ASuI parent class.
...
Patch by Johnny Chen.
llvm-svn: 85169
2009-10-26 22:42:13 +00:00
Bob Wilson
32ee4ee163
Add more ARM instruction encodings for 's' bit set and "rs" register encoding
...
bits. Patch by Johnny Chen.
llvm-svn: 85167
2009-10-26 22:34:44 +00:00
David Goodwin
0b5b62bfcf
Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken.
...
llvm-svn: 85166
2009-10-26 22:31:16 +00:00
Dan Gohman
3f14cd3282
Simplify this code. LoopDeletion doesn't need to explicit check that
...
the loop exiting block dominates the latch block; if ScalarEvolution
can prove that the trip-count is finite, that's sufficient.
llvm-svn: 85165
2009-10-26 22:18:58 +00:00
Dan Gohman
795e3db7ce
Code that checks WillNotOverflowSignedAdd before creating an Add
...
can safely use the NSW bit on the Add.
llvm-svn: 85164
2009-10-26 22:14:22 +00:00
Ted Kremenek
acb9fe806e
Update CMake files.
...
llvm-svn: 85161
2009-10-26 22:06:01 +00:00
Dan Gohman
c8468855a7
Teach BasicAA how to analyze Select instructions, and make it more
...
aggressive on PHI instructions.
llvm-svn: 85158
2009-10-26 21:55:43 +00:00
Julien Lerouge
d2861eb219
Remove / use flags that are now set in the Makefile.config.
...
llvm-svn: 85149
2009-10-26 20:01:35 +00:00
Julien Lerouge
a282c958d0
Regenerate.
...
llvm-svn: 85148
2009-10-26 20:00:35 +00:00
Julien Lerouge
b36e2ea7e1
Add an autoconf test to check for optional compiler flags like
...
-Wno-missing-field-initializers or -Wno-variadic-macros.
llvm-svn: 85147
2009-10-26 19:58:44 +00:00
David Goodwin
35fab8a585
Define virtual destructor in *.cpp file.
...
llvm-svn: 85146
2009-10-26 19:41:00 +00:00
David Goodwin
62dc7a4d93
Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all.
...
llvm-svn: 85145
2009-10-26 19:32:42 +00:00
Dan Gohman
05a91cc09f
Check in the experimental GEP splitter pass. This pass splits complex
...
GEPs (more than one non-zero index) into simple GEPs (at most one
non-zero index). In some simple experiments using this it's not
uncommon to see 3% overall code size wins, because it exposes
redundancies that can be eliminated, however it's tricky to use
because instcombine aggressively undoes the work that this pass does.
llvm-svn: 85144
2009-10-26 19:12:14 +00:00
David Goodwin
225165aae1
Add virtual destructor.
...
llvm-svn: 85141
2009-10-26 19:00:47 +00:00
Anton Korobeynikov
4f40949874
Revert r85134, it breaks mingw build
...
llvm-svn: 85138
2009-10-26 18:40:24 +00:00
Dan Gohman
7c0dc4ab00
Add CreateZExtOrBitCast and CreateSExtOrBitCast to TargetFolder
...
for consistency with ConstantFolder.
llvm-svn: 85137
2009-10-26 18:36:40 +00:00
Dan Gohman
97690f7a2a
When checking whether a def of an aliased register is dead, ask the
...
machineinstr whether the aliased register is dead, rather than the original
register is dead. This allows it to get the correct answer when examining
an instruction like this:
CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead>
where EAX is dead but a subregister of it is still live. This fixes PR5294.
llvm-svn: 85135
2009-10-26 18:26:18 +00:00
Sanjiv Gupta
7ea628e8db
Make PIC16 overlay a loadable pass.
...
llvm-svn: 85134
2009-10-26 18:22:59 +00:00
Devang Patel
9027c8f10f
Do not use expensive sort().
...
llvm-svn: 85130
2009-10-26 17:09:00 +00:00
David Goodwin
f6199e95b0
Break anti-dependence breaking out into its own class.
...
llvm-svn: 85127
2009-10-26 16:59:04 +00:00
Devang Patel
9eb437047b
Add support to encode type info using llvm::Constant.
...
Patch by Talin!
llvm-svn: 85126
2009-10-26 16:54:35 +00:00
Dan Gohman
7e7f34ab55
Fix a typo in a comment.
...
llvm-svn: 85120
2009-10-26 15:55:24 +00:00
Chris Lattner
7f9ddaf7e3
reapply r85085 with a bugfix to avoid infinite looping.
...
All of the 'demorgan' related xforms need to use
dyn_castNotVal, not m_Not.
llvm-svn: 85119
2009-10-26 15:40:07 +00:00
Dan Gohman
3d0c010ee4
Make LSR's OptimizeShadowIV ignore induction variables with negative
...
strides for now, because it doesn't handle them correctly. This fixes a
miscompile of SingleSource/Benchmarks/Misc-C++/ray.
This problem was usually hidden because indvars transforms such induction
variables into negations of canonical induction variables.
llvm-svn: 85118
2009-10-26 15:32:57 +00:00
Evan Cheng
4443642def
- Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and
...
bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg
around.
- Relax register scavenging to allow use of partially "not-live" registers. It's
common for targets to operate on registers where the top bits are undef. e.g.
s0 =
d0 = insert_subreg d0<undef>, s0, 1
...
= d0
When the insert_subreg is eliminated by the coalescer, the scavenger used to
complain. The previous fix was to keep to insert_subreg around. But that's
brittle and it's overly conservative when we want to use the scavenger to
allocate registers. It's actually legal and desirable for other instructions
to use the "undef" part of d0. e.g.
s0 =
d0 = insert_subreg d0<undef>, s0, 1
...
s1 =
= s1
= d0
We probably need add a "partial-undef" marker on machine operand so the
machine verifier would not complain.
llvm-svn: 85091
2009-10-26 04:56:07 +00:00
Evan Cheng
7dad155ec7
Revert 85085. It causes infinite looping during llvm-gcc build.
...
llvm-svn: 85090
2009-10-26 03:51:32 +00:00
Edward O'Callaghan
43d45b084e
Fix gmake check for AuroraUX triple.
...
llvm-svn: 85088
2009-10-26 02:37:56 +00:00
Chandler Carruth
766362c707
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Chris Lattner
192549ef70
Implement PR3266 & PR5276, folding:
...
not (or (icmp, icmp)) -> and(icmp, icmp)
llvm-svn: 85085
2009-10-26 01:06:31 +00:00
Chris Lattner
c88c01adb6
convert or.ll to filecheck and merge or2 into it.
...
llvm-svn: 85083
2009-10-25 23:47:55 +00:00
Chandler Carruth
88cbba7934
Remove stale reference to ThreadSupport.h.
...
llvm-svn: 85082
2009-10-25 23:41:56 +00:00
Chris Lattner
e3508acbef
fix PR5295 where the .ll parser didn't reject a function after a global
...
or global after a function with conflicting names. Update some testcases
that were accidentally depending on this behavior.
llvm-svn: 85081
2009-10-25 23:22:50 +00:00
Daniel Dunbar
4a18e32e25
Suppress -Asserts warning.
...
llvm-svn: 85078
2009-10-25 23:11:06 +00:00
Chris Lattner
2f00168ed8
fix PR5186: the JIT shouldn't try to codegen available_externally
...
functions it should just look them up like declarations.
llvm-svn: 85077
2009-10-25 23:06:42 +00:00
Chandler Carruth
6e9cf74969
Remove unused includes.
...
llvm-svn: 85074
2009-10-25 22:38:41 +00:00
Jim Grosbach
eae0e509c0
of -> or
...
llvm-svn: 85065
2009-10-25 19:14:48 +00:00
Jim Grosbach
29b842a6c1
80-column cleanup
...
llvm-svn: 85064
2009-10-25 18:55:46 +00:00
Sanjiv Gupta
18574b11b0
Reapply 85006 with a minor fix.
...
llvm-svn: 85052
2009-10-25 08:14:11 +00:00
Evan Cheng
a308ae55a5
Add a couple of ARM cross-rc coalescing tests.
...
llvm-svn: 85051
2009-10-25 08:01:41 +00:00
Evan Cheng
1c169777ca
Update tests.
...
llvm-svn: 85050
2009-10-25 07:53:48 +00:00
Evan Cheng
d748ce45ab
Add ARM getMatchingSuperRegClass to handle S / D / Q cross regclass coalescing.
...
llvm-svn: 85049
2009-10-25 07:53:28 +00:00
Evan Cheng
77ecc0adc5
Don't forget subreg indices when folding load / store.
...
llvm-svn: 85048
2009-10-25 07:52:27 +00:00
Evan Cheng
859d9f3b07
Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef.
...
llvm-svn: 85047
2009-10-25 07:51:47 +00:00