[LLVMdev] Testing the new CFL alias analysis

Hal Finkel hfinkel at anl.gov
Wed Sep 3 10:11:51 PDT 2014


Hello everyone,

One of Google's summer interns, George Burgess IV, created an implementation of the CFL pointer-aliasing analysis algorithm, and this has now been added to LLVM trunk. Now we should determine whether it is worthwhile adding this to the default optimization pipeline. For ease of testing, I've added the command line option -use-cfl-aa which will cause the CFL analysis to be added to the optimization pipeline. This can be used with the opt program, and also via Clang by passing: -mllvm -use-cfl-aa.

For the purpose of testing with those targets that make use of aliasing analysis during code generation, there is also a corresponding -use-cfl-aa-in-codegen option.

Running the test suite on one of our IBM POWER7 systems (comparing -O3 -mcpu=native to -O3 -mcpu=native -mllvm -use-cfl-aa -mllvm -use-cfl-aa-in-codegen [testing without use in code generation were essentially the same]), I see no significant compile-time changes, and the following performance results:
  speedup:
    MultiSource/Benchmarks/mafft/pairlocalalign: -11.5862% +/- 5.9257%

  slowdown:
    MultiSource/Benchmarks/FreeBench/neural/neural: 158.679% +/- 22.3212%
    MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset: 0.627176% +/- 0.290698%    
    MultiSource/Benchmarks/Ptrdist/ks/ks: 57.5457% +/- 21.8869%

I ran the test suite 20 times in each configuration, using make -j48 each time, so I'll only pick up large changes. I've not yet investigated the cause of the slowdowns (or the speedup), and I really need people to try this on x86, ARM, etc. I appears, however, the better aliasing analysis results might have some negative unintended consequences, and we'll need to look at those closely.

Please let me know how this fares on your systems!

Thanks again,
Hal

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list