Now, loop unrolling is enable at -O2 only if it is not explicitly set/ reset using -f[no-]unroll-loops.
- Devang Index: opts.c =================================================================== --- opts.c (revision 118611) +++ opts.c (working copy) @@ -548,6 +548,11 @@ void set_flags_from_O (unsigned int cmdl /* PRE tends to generate bigger code. */ flag_tree_pre = 1; } + /* APPLE LOCAL begin LLVM */ + /* Enable loop unrolling at -O2 if -f[no-]unroll-loops is not used. */ + if (!flag_unroll_loops_set) + flag_unroll_loops = 1; + /* APPLE LOCAL end LLVM */ } if (optimize >= 3) Index: llvm-backend.cpp =================================================================== --- llvm-backend.cpp (revision 119003) +++ llvm-backend.cpp (working copy) @@ -243,7 +243,7 @@ void llvm_asm_file_start(void) { PM->add(createLoopUnswitchPass()); // Unswitch loops. PM->add(createInstructionCombiningPass()); // Clean up after LICM/reassoc PM->add(createIndVarSimplifyPass()); // Canonicalize indvars - if (flag_unroll_loops || optimize > 1) + if (flag_unroll_loops) PM->add(createLoopUnrollPass()); // Unroll small loops PM->add(createInstructionCombiningPass()); // Clean up after the unroller _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits