Chris Lattner
665b9e2a3c
Random updates to passes for indbr, I need blockaddress before I can do much more.
...
llvm-svn: 85316
2009-10-27 21:27:42 +00:00
Chris Lattner
34c90ce60d
cppbackend support for indbr
...
llvm-svn: 85312
2009-10-27 21:24:48 +00:00
Chris Lattner
f21034d6c3
CBE support for indbr.
...
llvm-svn: 85311
2009-10-27 21:21:06 +00:00
Johnny Chen
b746e248cd
Similar to r85280, do not clear the "S" bit for RSBri and RSBrs.
...
llvm-svn: 85299
2009-10-27 20:51:49 +00:00
Devang Patel
635c6192e6
Do not held on to DenseMap slot accross map insertion. The insertion may cause the map to grow rending the slot invalid.
...
Use this opportunity to use ValueMap instead of DenseMap.
llvm-svn: 85298
2009-10-27 20:47:17 +00:00
Johnny Chen
d63b06e0f6
Set condition code bits of BL and BLr9 to 0b1110 (ALways) to distinguish between
...
BL_pred and BLr9_pred.
llvm-svn: 85297
2009-10-27 20:45:15 +00:00
Chris Lattner
bac03ba22e
don't use stdio
...
llvm-svn: 85296
2009-10-27 20:42:54 +00:00
Jeffrey Yasskin
2d123f7740
Change the JIT to compile eagerly by default as agreed in
...
http://llvm.org/PR5184 , and beef up the comments to describe what both options
do and the risks of lazy compilation in the presence of threads.
llvm-svn: 85295
2009-10-27 20:30:28 +00:00
Victor Hernandez
0f662a7acf
Rename MallocFreeHelper as MemoryBuiltins
...
llvm-svn: 85286
2009-10-27 20:05:49 +00:00
Evan Cheng
151726ad30
Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target.
...
llvm-svn: 85281
2009-10-27 19:56:55 +00:00
Bob Wilson
5ca76e601f
Do not clear the "S" bit for RSCri and RSCrs. They inherit from the "sI"
...
instruction format that already takes care of setting this.
llvm-svn: 85280
2009-10-27 19:52:03 +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
Johnny Chen
528c66b30c
Explicitly specify 0b00, i.e, zero rotation, as the rotate filed (Inst{11-10})
...
for the r/rr fragment of the multiclass AI_unary_rrot/AI_bin_rrot.
llvm-svn: 85271
2009-10-27 18:44:24 +00:00
Sanjiv Gupta
c690360ed5
Remove unnecessary gotos to fall-thru successors.
...
llvm-svn: 85257
2009-10-27 17:40:24 +00:00
Johnny Chen
37851c95e8
Test commit. Added '.' to the comment line.
...
llvm-svn: 85255
2009-10-27 17:25:15 +00:00
Chris Lattner
fa5b1df64a
Type.h doesn't need to #include LLVMContext.h
...
llvm-svn: 85254
2009-10-27 17:08:31 +00:00
Chris Lattner
855341bf05
pseudosourcevalue is also still using getGlobalContext(), so it isn't
...
thread safe either.
llvm-svn: 85253
2009-10-27 17:02:08 +00:00
Chris Lattner
5596e0eb77
apparently the X86 JIT isn't fully contextized, it is still using getGlobalContext() :(
...
llvm-svn: 85252
2009-10-27 17:01:03 +00:00
Rafael Espindola
7eb2a8fb0b
Correctly align double arguments in the stack.
...
llvm-svn: 85235
2009-10-27 14:09:44 +00:00
Chris Lattner
aecb9a4040
Fix a pretty serious misfeature of the inliner: if it inlines a function
...
with multiple return values it inserts a PHI to merge them all together.
However, if the return values are all the same, it ends up with a pointless
PHI and this pointless PHI happens to really block SRoA from happening in
at least a silly C++ example written by Doug, but probably others. This
fixes rdar://7339069.
llvm-svn: 85206
2009-10-27 05:39:41 +00:00
Mike Stump
5b347d4e9d
VS build fix, patch by Marius Wachtler.
...
llvm-svn: 85197
2009-10-27 02:14:13 +00:00
Jeffrey Yasskin
1f331552d6
Fix OProfileJITEventListener after r85182.
...
llvm-svn: 85192
2009-10-27 01:06:51 +00:00
Eric Christopher
89c2f934d6
Add objectsize intrinsic and hook it up through codegen. Doesn't
...
do anything than return "I don't know" at the moment.
llvm-svn: 85189
2009-10-27 00:52:25 +00:00
Evan Cheng
032eef9720
Now VFP instructions.
...
llvm-svn: 85186
2009-10-27 00:20:49 +00:00
Dan Gohman
44189252b9
Add braces to avoid ambiguous else.
...
llvm-svn: 85185
2009-10-27 00:11:02 +00:00
Evan Cheng
f30e5556ba
Change Thumb1 and Thumb2 instructions to separate opcode from operands with a tab instead of a space.
...
llvm-svn: 85184
2009-10-27 00:08:59 +00:00
Jeffrey Yasskin
42aa2a2692
Automatically do the equivalent of freeMachineCodeForFunction(F) when F is
...
being destroyed. This allows users to run global optimizations like globaldce
even after some functions have been jitted.
This patch also removes the Function* parameter to
JITEventListener::NotifyFreeingMachineCode() since it can cause that to be
called when the Function is partially destroyed. This change will be even more
helpful later when I think we'll want to allow machine code to actually outlive
its Function.
llvm-svn: 85182
2009-10-27 00:03:05 +00:00
Victor Hernandez
6c86b93663
Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()
...
llvm-svn: 85181
2009-10-26 23:58:56 +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
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
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
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
Anton Korobeynikov
4f40949874
Revert r85134, it breaks mingw build
...
llvm-svn: 85138
2009-10-26 18:40:24 +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