| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.
llvm-svn: 32751
|
| |
|
|
|
|
|
|
| |
code to handle instructions as well, so that we properly fold things like
X & undef -> 0.
This fixes Transforms/SCCP/2006-12-19-UndefBug.ll
llvm-svn: 32715
|
| |
|
|
|
|
|
| |
converted, we lose a static initializer. This also allows GCC to emit warnings
about unused statistics.
llvm-svn: 32690
|
| |
|
|
| |
llvm-svn: 32469
|
| |
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
| |
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|
| |
|
|
|
|
| |
for now.
llvm-svn: 32208
|
| |
|
|
| |
llvm-svn: 31923
|
| |
|
|
|
|
|
|
|
|
| |
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
|
| |
|
|
|
|
| |
Prolangs-C/agrep and SCCP/2006-10-23-IPSCCP-Crash.ll
llvm-svn: 31132
|
| |
|
|
|
|
|
|
|
|
| |
1. Better document what is going on here.
2. Only hack on one branch per iteration, making the results less conservative.
3. Handle the problematic case by marking edges executable instead of by
playing with value lattice states. This is far less pessimistic, and fixes
SCCP/ipsccp-gvar.ll.
llvm-svn: 31106
|
| |
|
|
| |
llvm-svn: 31073
|
| |
|
|
|
|
| |
ConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30665
|
| |
|
|
| |
llvm-svn: 29925
|
| |
|
|
| |
llvm-svn: 27513
|
| |
|
|
|
|
| |
test/Regression/Transforms/SCCP/select.ll
llvm-svn: 26049
|
| |
|
|
| |
llvm-svn: 25514
|
| |
|
|
| |
llvm-svn: 25406
|
| |
|
|
| |
llvm-svn: 25180
|
| |
|
|
|
|
| |
ConstantFoldLoadThroughGEPConstantExpr function in the utils lib.
llvm-svn: 23446
|
| |
|
|
| |
llvm-svn: 21480
|
| |
|
|
| |
llvm-svn: 21427
|
| |
|
|
|
|
|
|
| |
Make IPSCCP strip off dead constant exprs that are using functions, making
them appear as though their address is taken. This allows us to propagate
some more pool descriptors, lowering the overhead of pool alloc.
llvm-svn: 21363
|
| |
|
|
|
|
|
|
| |
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597
|
| |
|
|
| |
llvm-svn: 19379
|
| |
|
|
|
|
|
|
| |
if the other side is overdefined.
This allows us to fold conditions like: if (X < Y || Y > Z) in some cases.
llvm-svn: 18807
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Actually increment the Statistic for the GV elim optzn
2. When resolving undef branches, only resolve branches in executable blocks,
avoiding marking a bunch of completely dead blocks live. This has a big
impact on the quality of the generated code.
With this patch, we positively rip up vortex, compiling Ut_MoveBytes to a
single memcpy call. In vortex we get this:
12 ipsccp - Number of globals found to be constant
986 ipsccp - Number of arguments constant propagated
1378 ipsccp - Number of basic blocks unreachable
8919 ipsccp - Number of instructions removed
llvm-svn: 18796
|
| |
|
|
| |
llvm-svn: 18795
|
| |
|
|
|
|
| |
non-address-taken global variables.
llvm-svn: 18790
|
| |
|
|
|
|
|
| |
In functions where we fully constant prop the return value, replace all
ret instructions with 'ret undef'.
llvm-svn: 18786
|
| |
|
|
| |
llvm-svn: 18781
|
| |
|
|
| |
llvm-svn: 18776
|
| |
|
|
|
|
|
|
|
| |
This implements SCCP/ipsccp-basic.ll, rips apart Olden/mst (as described in
PR415), and does other nice things.
There is still more to come with this, but it's a start.
llvm-svn: 18752
|
| |
|
|
| |
llvm-svn: 17897
|
| |
|
|
| |
llvm-svn: 17825
|
| |
|
|
| |
llvm-svn: 17824
|
| |
|
|
|
|
|
|
|
|
|
| |
1. Speedup getValueState by having it not consider Arguments. It's better
to just add them before we start SCCP'ing.
2. SCCP can delete the contents of dead blocks. No really, it's ok! This
reduces the size of the IR for subsequent passes, even though
simplifycfg would do the same job. In practice, simplifycfg does not
run until much later than sccp in gccas
llvm-svn: 17820
|
| |
|
|
| |
llvm-svn: 17818
|
| |
|
|
|
|
|
|
|
|
|
|
| |
class. The only changes are minor:
* Do not try to SCCP instructions that return void in the rewrite loop.
This is silly and fool hardy, wasting a map lookup and adding an entry
to the map which is never used.
* If we decide something has an undefined value, rewrite it to undef,
potentially leading to further simplications.
llvm-svn: 17816
|
| |
|
|
|
|
| |
and work better with VC++. Patch contributed by Morten Ofstad!
llvm-svn: 17281
|
| |
|
|
|
|
| |
ignore unreachable instructions
llvm-svn: 17044
|
| |
|
|
|
|
| |
-debug-only!
llvm-svn: 16868
|
| |
|
|
| |
llvm-svn: 16432
|
| |
|
|
|
|
| |
Patch contributed by Paolo Invernizzi. Thanks Paolo!
llvm-svn: 16368
|
| |
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
| |
|
|
| |
llvm-svn: 15487
|
| |
|
|
| |
llvm-svn: 14967
|
| |
|
|
|
|
|
| |
- Replace ConstantPointerRef usage with GlobalValue usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14947
|
| |
|
|
|
|
|
| |
Speed up SCCP substantially by processing overdefined values quickly. This
patch speeds up SCCP by about 30-40% on large testcases.
llvm-svn: 14861
|
| |
|
|
| |
llvm-svn: 14839
|