Eli Friedman <eli.friedman at gmail.com> writes:>> Ah. So is the MachineFunction version expected to work correctly? > > It's part of the default set of CodeGen passes.It is? Was that true in 3.1? I can't see where it is initialized in llc. I probably missed something important. :) Thanks! -David
http://llvm.org/viewvc/llvm-project/llvm/tags/RELEASE_31/final/lib/CodeGen/Passes.cpp?revision=156747&view=markup
void TargetPassConfig::addMachineSSAOptimization() {
// Pre-ra tail duplication.
if (addPass(EarlyTailDuplicateID) != &NoPassID)
printAndVerify("After Pre-RegAlloc TailDuplicate");
/// Add passes that optimize machine instructions after register allocation.
void TargetPassConfig::addMachineLateOptimization() {
// Branch folding must be run after regalloc and prolog/epilog insertion.
if (addPass(BranchFolderPassID) != &NoPassID)
printAndVerify("After BranchFolding");
// Tail duplication.
if (addPass(TailDuplicateID) != &NoPassID)
printAndVerify("After TailDuplicate");
On Thu, Nov 1, 2012 at 11:02 AM, <dag at cray.com>
wrote:>
> Eli Friedman <eli.friedman at gmail.com> writes:
>
> >> Ah. So is the MachineFunction version expected to work correctly?
> >
> > It's part of the default set of CodeGen passes.
>
> It is? Was that true in 3.1? I can't see where it is initialized in
> llc. I probably missed something important. :)
>
> Thanks!
>
> -David
Arnold Schwaighofer <arnolds at codeaurora.org> writes:> http://llvm.org/viewvc/llvm-project/llvm/tags/RELEASE_31/final/lib/CodeGen/Passes.cpp?revision=156747&view=markup > > void TargetPassConfig::addMachineSSAOptimization() { > // Pre-ra tail duplication. > if (addPass(EarlyTailDuplicateID) != &NoPassID) > printAndVerify("After Pre-RegAlloc TailDuplicate"); > > > /// Add passes that optimize machine instructions after register allocation. > void TargetPassConfig::addMachineLateOptimization() { > // Branch folding must be run after regalloc and prolog/epilog insertion. > if (addPass(BranchFolderPassID) != &NoPassID) > printAndVerify("After BranchFolding"); > > // Tail duplication. > if (addPass(TailDuplicateID) != &NoPassID) > printAndVerify("After TailDuplicate");Hmm. Why doesn't -tailduplication show up in llc -help?
Possibly Parallel Threads
- [LLVMdev] Tail Duplication Questions
- [LLVMdev] prevents instruction-scheduler from interfereing instruction pair
- [LLVMdev] prevents instruction-scheduler from interfereing instruction pair
- [LLVMdev] prevents instruction-scheduler from interfereing instruction pair
- [LLVMdev] Understanding SelectionDAG construction