Zhongxing Xu
e31a8ebfdc
Fix a serious bug.
...
When initialized, the index of the ElementRegion was unsigned. But the index
value of the ArraySubscriptExpr is signed. This inconsistency caused the value
of the array element retrieved to be UnknownVal despite it was initialized to
symbolic.
This is only a hack. Real fix of this problem is required.
llvm-svn: 60207
2008-11-28 08:41:39 +00:00
Zhongxing Xu
33178a0993
Code cleanup. No functional change.
...
llvm-svn: 60206
2008-11-28 08:34:30 +00:00
Zhongxing Xu
85b6e201f4
Use std::make_pair instead of std::pair's ctor.
...
llvm-svn: 60205
2008-11-28 03:55:52 +00:00
Zhongxing Xu
3698bdb417
Enable the GRStateManager to do something when we finish a path. For example,
...
the ConstraintManager can print its internal state before its solver instance is
destroyed.
llvm-svn: 60204
2008-11-28 03:07:05 +00:00
Chris Lattner
e9f6c355bf
rewrite RecursivelyDeleteTriviallyDeadInstructions to use a more efficient
...
formulation that doesn't require set lookups or scanning a set.
llvm-svn: 60203
2008-11-28 01:20:46 +00:00
Chris Lattner
d4b5ba615e
remove some weirdness that came from the LSR code that has
...
nothing to do with dead instruction elimination. No tests in
dejagnu depend on this, so I don't know what it was needed for.
llvm-svn: 60202
2008-11-28 00:58:15 +00:00
Chris Lattner
1adb6759ef
rewrite a big chunk of how DSE does recursive dead operand
...
elimination to use more modern infrastructure. Also do a bunch
of small cleanups.
llvm-svn: 60201
2008-11-28 00:27:14 +00:00
Mikhail Glushenkov
7283d44569
Scrap some boilerplate.
...
llvm-svn: 60200
2008-11-28 00:14:11 +00:00
Mikhail Glushenkov
cc2d0b2c4c
Support multiple compilation graph definitions. Not terribly useful, but makes the code more generic.
...
llvm-svn: 60199
2008-11-28 00:13:47 +00:00
Mikhail Glushenkov
3bb3da6f4c
Add 'hidden' and 'really_hidden' option properties.
...
llvm-svn: 60198
2008-11-28 00:13:25 +00:00
Mikhail Glushenkov
4ad34cbdc0
Documentation: clarify what is meant by 'multiple edges'.
...
llvm-svn: 60197
2008-11-28 00:12:09 +00:00
Chris Lattner
8e84c129ce
delete ErasePossiblyDeadInstructionTree, replacing uses of it with
...
RecursivelyDeleteTriviallyDeadInstructions.
llvm-svn: 60196
2008-11-27 23:25:44 +00:00
Chris Lattner
c077a2a535
Simplify LoopStrengthReduce::DeleteTriviallyDeadInstructions by
...
making it use RecursivelyDeleteTriviallyDeadInstructions to do
the heavy lifting.
llvm-svn: 60195
2008-11-27 23:23:35 +00:00
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