Go to file
Duncan Sands 641baf1646 Generalize the reassociation transform in SimplifyCommutative (now renamed to
SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)",
which previously was only done if C1 and C2 were constants, to occur whenever
"C1 op C2" simplifies (a la InstructionSimplify).  Since the simplifying operand
combination can no longer be assumed to be the right-hand terms, consider all of
the possible permutations.  When compiling "gcc as one big file", transform 2
(i.e. using right-hand operands) fires about 4000 times but it has to be said
that most of the time the simplifying operands are both constants.  Transforms
3, 4 and 5 each fired once.  Transform 6, which is an existing transform that
I didn't change, never fired.  With this change, the testcase is now optimized
perfectly with one run of instcombine (previously it required instcombine +
reassociate + instcombine, and it may just have been luck that this worked).

llvm-svn: 119002
2010-11-13 15:10:37 +00:00
clang Switch to using %clang_cc1 properly rather than manually passing the -cc1 flag. 2010-11-13 10:19:35 +00:00
compiler-rt make: Add CheckCommandLineOverrides to my little Makefile library, a routine for 2010-10-14 21:23:37 +00:00
debuginfo-tests Zap white spaces, test commit email. 2010-11-10 18:11:11 +00:00
libcxx update to use new linker option to re-export from libc++abi.dylb 2010-10-29 19:46:14 +00:00
lldb Got namespace lookup working and was able to print a complex "this" as an 2010-11-13 04:18:24 +00:00
llvm Generalize the reassociation transform in SimplifyCommutative (now renamed to 2010-11-13 15:10:37 +00:00