Chris Lattner
a1bbdff933
enhance RecursivelyDeleteTriviallyDeadInstructions to make
...
PHIs dead if they are single-value.
llvm-svn: 60194
2008-11-27 23:18:11 +00:00
Chris Lattner
1cb4f72706
Enhance RecursivelyDeleteTriviallyDeadInstructions to optionally
...
return a list of deleted instructions.
llvm-svn: 60193
2008-11-27 23:14:34 +00:00
Chris Lattner
96e2dbe008
use continue to reduce indentation
...
llvm-svn: 60192
2008-11-27 23:00:20 +00:00
Chris Lattner
c6c481cdfc
remove doConstantPropagation and dceInstruction, they are just
...
wrappers around the interesting code and use an obscure iterator
abstraction that dates back many many years.
Move EraseDeadInstructions to Transforms/Utils and name it
RecursivelyDeleteTriviallyDeadInstructions.
llvm-svn: 60191
2008-11-27 22:57:53 +00:00
Chris Lattner
5ef9ebf787
simplify code.
...
llvm-svn: 60190
2008-11-27 22:56:14 +00:00
Chris Lattner
c92fa42ddd
simplify this logic.
...
llvm-svn: 60189
2008-11-27 22:46:09 +00:00
Nick Lewycky
edd5d3e4e9
Also update the README.
...
llvm-svn: 60188
2008-11-27 22:41:45 +00:00
Nick Lewycky
4ab50b93c8
Chris prefers icmp/select over udiv!
...
llvm-svn: 60187
2008-11-27 22:41:10 +00:00
Nick Lewycky
b3dc4ad5b4
Add a synthetic missed optimization.
...
llvm-svn: 60186
2008-11-27 22:12:22 +00:00
Nick Lewycky
69941fd0a0
Add a couple of missed optimizations on integer vectors. Multiply and divide
...
by 1, as well as multiply by -1.
llvm-svn: 60182
2008-11-27 20:21:08 +00:00
Chris Lattner
e85cb38d5c
remove dead diag
...
llvm-svn: 60181
2008-11-27 19:33:39 +00:00
Chris Lattner
4059f43b74
defensive patch: if CGP is merging a block with the entry block, make sure
...
it ends up being the entry block.
llvm-svn: 60180
2008-11-27 19:29:14 +00:00
Chris Lattner
5dfbfcd80d
Fix PR3138: if we merge the entry block into another block, make sure to
...
move the other block back up into the entry position!
llvm-svn: 60179
2008-11-27 19:25:19 +00:00
Nick Lewycky
2c96bdd8d6
Silence a warning.
...
Despite changing the order of evaluation, this doesn't actually change the
meaning of the statement.
llvm-svn: 60177
2008-11-27 17:29:52 +00:00
Nuno Lopes
50343cd2fe
fix build on some machines. thanks buildbot
...
llvm-svn: 60175
2008-11-27 16:42:44 +00:00
Nuno Lopes
d5c2a144e1
fix my previous commit r60064: compare strings instead of pointers
...
llvm-svn: 60174
2008-11-27 16:37:02 +00:00
Chris Lattner
e0d019def6
switch InstCombine::visitLoadInst to use
...
FindAvailableLoadedValue
llvm-svn: 60169
2008-11-27 08:56:30 +00:00
Chris Lattner
378b041f03
improve const correctness.
...
llvm-svn: 60168
2008-11-27 08:39:18 +00:00
Chris Lattner
c6ae56d23f
enhance FindAvailableLoadedValue to make use of AliasAnalysis
...
if it has it.
llvm-svn: 60167
2008-11-27 08:18:12 +00:00
Chris Lattner
72f16e70f0
move FindAvailableLoadedValue from JumpThreading to Transforms/Utils.
...
llvm-svn: 60166
2008-11-27 08:10:05 +00:00
Bill Wendling
c6075401c2
Get rid of bogus "control may reach end of non-void function ‘...’ being
...
inlined" message.
llvm-svn: 60165
2008-11-27 08:00:12 +00:00
Chris Lattner
d6204bed3d
simplify this code a bit.
...
llvm-svn: 60164
2008-11-27 07:54:38 +00:00
Chris Lattner
206250284d
Use the new MergeBasicBlockIntoOnlyPred function.
...
llvm-svn: 60163
2008-11-27 07:54:12 +00:00
Chris Lattner
99d6809ac1
move MergeBasicBlockIntoOnlyPred to Transforms/Utils.
...
llvm-svn: 60162
2008-11-27 07:43:12 +00:00
Bill Wendling
077eb6fcc2
XFAil test due to reverting of patch.
...
llvm-svn: 60161
2008-11-27 07:34:10 +00:00
Sebastian Redl
3ceaf62240
Fix order of evaluation.
...
llvm-svn: 60160
2008-11-27 07:28:14 +00:00
Chris Lattner
240051aace
rename ThreadBlock to ProcessBlock, since it does other things than
...
just simple threading.
llvm-svn: 60157
2008-11-27 07:20:04 +00:00
Bill Wendling
128f032cc8
Comment out code that isn't entirely correct.
...
llvm-svn: 60156
2008-11-27 07:18:35 +00:00
Misha Brukman
c9813bda47
Fixed HTML closing tag, cleaned up some spacing.
...
llvm-svn: 60153
2008-11-27 06:41:20 +00:00
Zhongxing Xu
7b3d3d3ee1
ImmutableList::getInternalPointer() returns a const ImmutableListImpl<T>* pointer, which must be converted to void* explicitly.
...
llvm-svn: 60152
2008-11-27 06:32:54 +00:00
Zhongxing Xu
59e2d41a8e
Factory objects should not be temporary. It caches all objects in the set.
...
llvm-svn: 60151
2008-11-27 06:08:40 +00:00
Zhongxing Xu
b670f294c9
RegionViewMap factory is actually not used. All GDMs should use factories from
...
GDMContext.
llvm-svn: 60150
2008-11-27 06:03:03 +00:00
Sanjiv Gupta
7ae1a84465
Removing redundant semicolons. No functionality change.
...
llvm-svn: 60149
2008-11-27 05:58:04 +00:00
Chris Lattner
98d89d1b1b
Make jump threading substantially more powerful, in the following ways:
...
1. Make it fold blocks separated by an unconditional branch. This enables
jump threading to see a broader scope.
2. Make jump threading able to eliminate locally redundant loads when they
feed the branch condition of a block. This frequently occurs due to
reg2mem running.
3. Make jump threading able to eliminate *partially redundant* loads when
they feed the branch condition of a block. This is common in code with
lots of loads and stores like C++ code and 255.vortex.
This implements thread-loads.ll and rdar://6402033.
Per the fixme's, several pieces of this should be moved into Transforms/Utils.
llvm-svn: 60148
2008-11-27 05:07:53 +00:00
Daniel Dunbar
e9095f55c7
Test commit.
...
llvm-svn: 60147
2008-11-27 03:47:29 +00:00
Zhongxing Xu
b94f440754
Add comments.
...
llvm-svn: 60146
2008-11-27 02:39:34 +00:00
Evan Cheng
b133907e61
Eliminate a compile time warning.
...
llvm-svn: 60145
2008-11-27 02:29:25 +00:00
Zhongxing Xu
2d311e8354
Add license comments.
...
llvm-svn: 60144
2008-11-27 02:19:10 +00:00
Zhongxing Xu
16e3f0e03f
Add support for pluggable components of static analyzer.
...
- Creator function pointers are saved in ManagerRegistry.
- The Register* class is used to notify ManagerRegistry new module is
available.
- AnalysisManager queries ManagerRegistry for configurable module. Then it
passes them to GRExprEngine, in turn to GRStateManager.
llvm-svn: 60143
2008-11-27 01:55:08 +00:00
Douglas Gregor
a29dc05eaf
Add implicit conversions for Objective-C qualified ids, e.g.,
...
id<P0>
The intended overloading behavior of these entities isn't entirely
clear, and GCC seems to have some strange limitations (e.g., the
inability to overload on id<P0> vs. id<P1>). We'll want to revisit
these semantics and determine just how Objective-C++ overloading
should really work.
llvm-svn: 60142
2008-11-27 01:19:21 +00:00
Evan Cheng
3761143755
Avoid inserting noop's in the middle of a loop.
...
llvm-svn: 60141
2008-11-27 01:16:00 +00:00
Douglas Gregor
bb9bf88fa4
Cleanup formatting
...
llvm-svn: 60140
2008-11-27 00:52:49 +00:00
Evan Cheng
83bdb38965
On x86 favors folding short immediate into some arithmetic operations (e.g. add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size.
...
e.g.
movl 4(%esp), %eax
addl $4, %eax
is 2 bytes shorter than
movl $4, %eax
addl 4(%esp), %eax
llvm-svn: 60139
2008-11-27 00:49:46 +00:00
Douglas Gregor
e7dd145c02
Don't complain about block pointer to void* conversions
...
llvm-svn: 60138
2008-11-27 00:44:28 +00:00
Dale Johannesen
73bc0ba4c9
Add a missing case in visitADD.
...
llvm-svn: 60137
2008-11-27 00:43:21 +00:00
Ted Kremenek
1f50dc899f
PTHLexer now owns the Token vector.
...
llvm-svn: 60136
2008-11-27 00:38:24 +00:00
Evan Cheng
d1dda5339d
Add -march=x86.
...
llvm-svn: 60135
2008-11-27 00:37:06 +00:00
Ted Kremenek
143b058a8e
Add typedef to StringMapEntry.
...
llvm-svn: 60134
2008-11-27 00:17:25 +00:00
Douglas Gregor
231d1c6f8f
Support block pointer conversions in C++. I'm storing the test case locally until we can enable blocks in C++
...
llvm-svn: 60133
2008-11-27 00:15:41 +00:00
Ted Kremenek
b1ef37589c
- Enhance PTH generation to write out IdentifierInfo table in two parts:
...
- a table including the IdentifierInfo data
- an index from persistent IdentifierInfo IDs to indices within this file.
- Enhance PTH generation to write out file map information, mapping inodes to tokens.
llvm-svn: 60132
2008-11-26 23:58:26 +00:00