mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
We currently only run ipsccp at LTO time, which is silly. It subsumes
ipconstprop and doesn't take much time. Just run it in its place. This adds a testcase for it, which I plan to expand to cover other "integration" cases, where we expect the optimizer to be able to eliminate various things. Due to phase order issues we've regressed in a number of areas and integration tests are the only way I see to prevent this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85729 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c4775e4b97
commit
0037bfabd4
@ -100,8 +100,7 @@ namespace llvm {
|
||||
if (UnitAtATime) {
|
||||
PM->add(createGlobalOptimizerPass()); // Optimize out global vars
|
||||
PM->add(createGlobalDCEPass()); // Remove unused fns and globs
|
||||
// IP Constant Propagation
|
||||
PM->add(createIPConstantPropagationPass());
|
||||
PM->add(createIPSCCPPass()); // IP SCCP
|
||||
PM->add(createDeadArgEliminationPass()); // Dead argument elimination
|
||||
}
|
||||
PM->add(createInstructionCombiningPass()); // Clean up after IPCP & DAE
|
||||
|
19
test/FrontendC++/integration-O2.cpp
Normal file
19
test/FrontendC++/integration-O2.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
// RUN: %llvmgxx %s -O2 -S -o - | FileCheck %s
|
||||
|
||||
// This test verifies that we get expected codegen out of the -O2 optimization
|
||||
// level from the full optimizer.
|
||||
|
||||
|
||||
|
||||
// Verify that ipsccp is running and can eliminate globals.
|
||||
static int test1g = 42;
|
||||
void test1f1() {
|
||||
if (test1g == 0) test1g = 0;
|
||||
}
|
||||
int test1f2() {
|
||||
return test1g;
|
||||
}
|
||||
|
||||
// CHECK: @_Z7test1f2v()
|
||||
// CHECK: entry:
|
||||
// CHECK-NEXT: ret i32 42
|
Loading…
x
Reference in New Issue
Block a user