[LLVMbugs] [Bug 9867] Optimization introduces intrinsics and they are not lowered.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun May 8 05:28:31 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=9867

Óscar Fuentes <ofv at wanadoo.es> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID

--- Comment #13 from Óscar Fuentes <ofv at wanadoo.es> 2011-05-08 07:28:30 CDT ---
It works now.

Apparently the problem was caused by my compiler running an incorrect series of
passes when optimizations are enabled. This is the code I was using, taken from
a past incantation of lli (or opt, I'm not sure):

    if( optimizationLevel > 0 ) {
      PassManager Passes;
      Passes.add( new TargetData(M) );
      FunctionPassManager *FPasses = new FunctionPassManager(M);
      FPasses->add( new TargetData(M) );

      createStandardFunctionPasses(FPasses, optimizationLevel);
      llvm::Pass *InliningPass = createFunctionInliningPass();
      createStandardModulePasses(&Passes, optimizationLevel,
                                 /*OptimizeSize=*/ false,
                                 /*UnitAtATime=*/ true,
                                 /*UnrollLoops=*/ true,
                                 /*SimplifyLibCalls=*/ true,
                                 /*HaveExceptions=*/ false,
                                 InliningPass);

      FPasses->doInitialization();
      for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I)
        FPasses->run(*I);
      FPasses->doFinalization();

      Passes.run(*M);
    }

After replacing that code with a call to builder::setOptLevel the optimized
LLVM bitcode no longer contains calls to llvm.trap. That was consistent with
what I was told on irc: on the JIT, after running the passes the right way, no
intrinsics are left on the code.

What is still unresolved is whether the JIT handles occurrences of llvm.trap or
barfs at it. Eli, if you want to investigate this further, please reopen the
bug and provide instructions about what to do for feeding you with more info.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list