1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/lib/Transforms
Arnold Schwaighofer 0a98597e80 Reapply 184685 after the SetVector iteration order fix.
This should hopefully have fixed the stage2/stage3 miscompare on the dragonegg
testers.

"LoopVectorize: Use the dependence test utility class

We now no longer need alias analysis - the cases that alias analysis would
handle are now handled as accesses with a large dependence distance.

We can now vectorize loops with simple constant dependence distances.

  for (i = 8; i < 256; ++i) {
    a[i] = a[i+4] * a[i+8];
  }

  for (i = 8; i < 256; ++i) {
    a[i] = a[i-4] * a[i-8];
  }

We would be able to vectorize about 200 more loops (in many cases the cost model
instructs us no to) in the test suite now. Results on x86-64 are a wash.

I have seen one degradation in ammp. Interestingly, the function in which we
now vectorize a loop is never executed so we probably see some instruction
cache effects. There is a 2% improvement in h264ref. There is one or the other
TSCV loop kernel that speeds up.

radar://13681598"

llvm-svn: 184724
2013-06-24 12:09:15 +00:00
..
Hello Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
InstCombine [APFloat] Converted all references to APFloat::isNormal => APFloat::isFiniteNonZero. 2013-06-19 21:23:18 +00:00
Instrumentation Fix nondeterminism in .gcno file generation. 2013-06-18 06:38:21 +00:00
IPO Add a flag to defer vectorization into a phase after the inliner and its 2013-06-24 07:21:47 +00:00
ObjCARC [objc-arc-opts] Make IsTrackingImpreciseReleases a const method. 2013-06-21 20:52:49 +00:00
Scalar Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
Utils Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
Vectorize Reapply 184685 after the SetVector iteration order fix. 2013-06-24 12:09:15 +00:00
CMakeLists.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Makefile Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00