| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This allows more globals to be marked constant, particularly global arrays.
llvm-svn: 15735
|
|
|
|
|
|
|
|
|
| |
block (common in a switch), make sure to remove extra edges in successor
blocks. This fixes CodeExtractor/2004-08-12-BlockExtractPHI.ll and should
be pulled into LLVM 1.3 (though the regression test need not be, as that
would require pulling in the LoopExtract.cpp changes).
llvm-svn: 15717
|
|
|
|
|
|
| |
the extracted code was, instead of putting it at the end of the function
llvm-svn: 15716
|
|
|
|
| |
llvm-svn: 15714
|
|
|
|
|
|
| |
Nate ran into when bugpointing siod. This fix should go into LLVM 1.3
llvm-svn: 15712
|
|
|
|
|
|
|
|
|
|
| |
instructions in the body of the function (not the entry block). This fixes
test/Programs/SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c
and test/Programs/External/SPEC/CINT2000/176.gcc on zion.
This should obviously be pulled into 1.3.
llvm-svn: 15684
|
|
|
|
|
|
| |
run into. This should go into 1.3
llvm-svn: 15679
|
|
|
|
| |
llvm-svn: 15676
|
|
|
|
|
|
|
| |
176.gcc. Note that this is apparently not the only bug miscompiling gcc
though. :(
llvm-svn: 15639
|
|
|
|
|
|
| |
This should go into the 1.3 branch
llvm-svn: 15593
|
|
|
|
|
|
|
|
|
|
| |
dangling constant users were removed from a function, causing it to be dead,
we never removed the call graph edge from the external node to the function.
In most cases, this didn't cause a problem (by luck). This should definitely
go into 1.3
llvm-svn: 15570
|
|
|
|
|
|
|
|
|
|
| |
1. Fix a REALLY nasty cyclic replacement issue that Anshu discovered, causing
nondeterminstic crashes and memory corruption.
2. For performance, don't go inserting constantexpr casts of GV pointers.
This should definitely go into 1.3
llvm-svn: 15568
|
|
|
|
|
|
| |
should go into 1.3
llvm-svn: 15567
|
|
|
|
| |
llvm-svn: 15487
|
|
|
|
| |
llvm-svn: 15410
|
|
|
|
| |
llvm-svn: 15369
|
|
|
|
| |
llvm-svn: 15343
|
|
|
|
| |
llvm-svn: 15342
|
|
|
|
| |
llvm-svn: 15337
|
|
|
|
| |
llvm-svn: 15334
|
|
|
|
| |
llvm-svn: 15328
|
|
|
|
| |
llvm-svn: 15325
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
assumed that a constant on the RHS of a multiplication was either an
IntConstant or an FPConstant. It checked for an IntConstant and then,
if it did not find one, did a hard cast to an FPConstant. That code
would crash if the RHS were a ConstantExpr that was neither an
IntConstant nor an FPConstant. This version replaces the hard cast
with a dyn_cast. It performs the same way for IntConstants and
FPConstants but does nothing, instead of crashing, for constant
expressions.
The regression test for this change is 2004-07-27-ConstantExprMul.ll.
llvm-svn: 15291
|
|
|
|
| |
llvm-svn: 15276
|
|
|
|
| |
llvm-svn: 15263
|
|
|
|
|
|
| |
end of the function (either return or unwind)
llvm-svn: 15232
|
|
|
|
|
|
| |
is bad bad bad.
llvm-svn: 15227
|
|
|
|
|
|
|
|
|
|
|
| |
a bug in DSE).
* Delete dead operand uses iteratively instead of recursively, using a
SetVector.
* Defer deletion of dead operand uses until the end of processing, which means
we don't have to bother with updating the AliasSetTracker. This speeds up
DSE substantially.
llvm-svn: 15204
|
|
|
|
| |
llvm-svn: 15199
|
|
|
|
| |
llvm-svn: 15162
|
|
|
|
|
|
|
| |
can be improved in many ways. But: stop laughing, even with -basicaa it
deletes 15% of the stores in 252.eon :)
llvm-svn: 15101
|
|
|
|
|
|
| |
to the field being updated. Patch contributed by Tobias Nurmiranta
llvm-svn: 15097
|
|
|
|
|
|
| |
"Support/Debug.h".
llvm-svn: 15089
|
|
|
|
|
|
|
|
|
|
|
| |
* Test for whether bits are shifted out during the optzn.
If so, the fold is illegal, though it can be handled explicitly for setne/seteq
This fixes the miscompilation of 254.gap last night, which was a latent bug
exposed by other optimizer improvements.
llvm-svn: 15085
|
|
|
|
|
|
| |
"simplify" a bit of code for comparison/and folding
llvm-svn: 15082
|
|
|
|
|
|
| |
the appopriate size. This gives us the ability to eliminate int -> ptr -> int
llvm-svn: 15063
|
|
|
|
|
|
|
| |
return, clone the 'ret' BB code into the block AFTER the inlined call, not the
other way around.
llvm-svn: 15030
|
|
|
|
| |
llvm-svn: 15029
|
|
|
|
|
|
| |
to constify 14 globals instead of 4 in a trivial C++ testcase.
llvm-svn: 15027
|
|
|
|
| |
llvm-svn: 15024
|
|
|
|
| |
llvm-svn: 15022
|
|
|
|
|
|
|
|
| |
actually care about. Someday when the cast instruction is gone, we can do
better here, but this will do for now. This implements
instcombine/cast.ll:test17/18 as well.
llvm-svn: 15018
|
|
|
|
| |
llvm-svn: 14974
|
|
|
|
|
|
|
|
|
|
| |
night compiling cfrac. It did not realize that code like this:
int G; int *H = &G;
takes the address of G.
llvm-svn: 14973
|
|
|
|
| |
llvm-svn: 14972
|
|
|
|
| |
llvm-svn: 14968
|
|
|
|
| |
llvm-svn: 14967
|
|
|
|
| |
llvm-svn: 14966
|
|
|
|
| |
llvm-svn: 14965
|
|
|
|
|
|
| |
too.
llvm-svn: 14964
|