llvm-6502/lib/Transforms
Arnold Schwaighofer f4775827d0 LoopVectorizer: Perform redundancy elimination on induction variables
When the loop vectorizer was part of the SCC inliner pass manager gvn would
run after the loop vectorizer followed by instcombine. This way redundancy
(multiple uses) were removed and instcombine could perform scalarization on the
induction variables. Having moved the loop vectorizer to later we no longer run
any form of redundancy elimination before we perform instcombine. This caused
vectorized induction variables to survive that did not before.

On a recent iMac this helps linpack back from 6000Mflops to 7000Mflops.

This should also help lpbench and paq8p.

I ran a Release (without Asserts) build over the test-suite and did not see any
negative impact on compile time.

radar://15339680

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193891 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-01 22:18:19 +00:00
..
Hello First check in. Modified a comment. 2013-09-27 07:36:10 +00:00
InstCombine Remove x86_sse42_crc32_64_8 intrinsic. It has no functional difference from x86_sse42_crc32_32_8 and was not mapped to a clang builtin. I'm not even sure why this form of the instruction is even called out explicitly in the docs. Also add AutoUpgrade support to convert it into the other intrinsic with appropriate trunc and zext. 2013-10-15 05:20:47 +00:00
Instrumentation fix PR17635: false positive with packed structures 2013-10-24 09:17:24 +00:00
IPO Use LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN instead of the "dso list". 2013-10-31 20:51:58 +00:00
ObjCARC Revert "Give internal classes hidden visibility." 2013-09-11 18:05:11 +00:00
Scalar Teach scalarrepl about address spaces 2013-10-30 22:54:58 +00:00
Utils Do not convert "call asm" to "invoke asm" in Inliner. 2013-10-31 21:56:03 +00:00
Vectorize LoopVectorizer: Perform redundancy elimination on induction variables 2013-11-01 22:18:19 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile