Differences between revisions 26 and 27
Revision 26 as of 2009-02-12 16:20:11
Size: 2581
Comment:
Revision 27 as of 2009-02-18 12:58:36
Size: 2704
Comment:
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.

Alias Improvements

Pre-Merge TODO

Followup Improvements

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.

gcc tests

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.

None: Alias_Improvements (last edited 2010-02-14 11:03:09 by RichardGuenther)