|Deletions are marked like this.||Additions are marked like this.|
|Line 34:||Line 34:|
|gimple_loaded_syms and gimple_stored_syms is only used by ipa-reference. Removing
both can be done without much harm.
push/pop_stmt_changes can be cleaned up, simplified, or even removed.
The inliner can rewrite the virtual operands itself just like regular operands. The only difficulties are that new pure/const functions are exposed after IPA-pure-const and that new PHI-nodes need to be inserted to merge VDEFs in the inlined function to the VDEF of the call statement. Partial patch available.
The single pre-function gimple_vop (cfun) DECL can be made per CU. The disadvantage is that cross-function inconsistencies are harder to detect.
Most passes that mark symbols for renaming should not need to. This is mostly fixed.
PTA should keep both an unpruned points-to set and a TBAA-pruned points-to set. This allows per alias-oracle query decisions on whether TBAA should be applied or not. This also allows (a fixed - see its comments) merge_alias_info to do its job using the unpruned sets.
into-SSA could go into virtual SSA form directly, without doing an ssa-update to rename the virtual operands after into-SSA. into-SSA expert needed.
In PTA we can generate a CALLUSED variable and its constraints for each pure call (just like we do with consttmp for const calls).
Simple mod/ref analysis can be done in PTA handle_rhs_call for builtins. call-used queries have to be extended to builtin function calls then (or finally a stmt local call-used points-to solution reference can be introduced).
gimple_loaded_syms and gimple_stored_syms is only used by ipa-reference. Removing both can be done without much harm.
Testsuite status on x86_64, i?86
FAILs that appear also on trunk and XPASSes are omitted.
FAIL: gcc.dg/uninit-B.c uninit i warning (test for warnings, line 12) FAIL: gcc.dg/uninit-pr19430.c (test for warnings, line 32) FAIL: gcc.dg/uninit-pr19430.c uninitialized (test for warnings, line 41)
Uninitialized memory warnings will no longer work, or rather, the current implementation will be even more fragile. Action: uninit-B.c to be XFAILed again, the rest to be XFAILed.
FAIL: gcc.dg/tree-ssa/pr35286.c scan-tree-dump-times pre "Eliminated: 2" 1
PRE missed optimization, vuse phi-translation does not use the alias oracle. Broken patch available.
FAIL: gcc.dg/tree-ssa/ssa-fre-10.c scan-tree-dump pre "Insertions: 2"
Weird testcase, it is not clear what it was supposed to test. Action: Move to the compile torture.
FAIL: gcc.dg/tree-ssa/ssa-pre-24.c scan-tree-dump-not pre "prephitmp"
A new testcase on the branch. We shouldn't insert a prephitmp here. Action: XFAIL.