Displaying 20 results from an estimated 95 matches for "createinstructioncombiningpass".
2006 Sep 03
0
[LLVMdev] llvm-gcc4: Enable various optimizations at -O1/-O2
...Passes->add(createGlobalDCEPass()); // Remove
unused fns and globs
+ PerModulePasses->add(createIPConstantPropagationPass());// IP
Constant Propagation
+ PerModulePasses->add(createDeadArgEliminationPass()); // Dead
argument elimination
+ PerModulePasses->add(createInstructionCombiningPass()); // Clean
up after IPCP & DAE
+ PerModulePasses->add(createCFGSimplificationPass()); // Clean
up after IPCP & DAE
+ PerModulePasses->add(createPruneEHPass()); // Remove
dead EH info
+
+ if (optimize > 1) {
+ PerModulePasses->add(createFunct...
2013 Sep 14
0
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...eparationPass") when generate LLVMPolly.so
Fist. let's see the results of removing the first "InstructionCombining" pass like this:
static void registerCanonicalicationPasses(llvm::PassManagerBase &PM) {
PM.add(llvm::createPromoteMemoryToRegisterPass());
// PM.add(llvm::createInstructionCombiningPass()); //this is the most expensive canonicalization pass for flop benchmark
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createTailCallEliminationPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createReassociatePass());
PM.add(llvm::createLoopRotatePass());...
2013 Sep 13
2
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...vestigating the flop benchmark, I find the key is the first "InstructionCombining" pass in a serial of canonicalization passes listed as follows:
static void registerCanonicalicationPasses(llvm::PassManagerBase &PM) {
PM.add(llvm::createPromoteMemoryToRegisterPass());
PM.add(llvm::createInstructionCombiningPass()); //this is the most expensive canonicalization pass for flop benchmark
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createTailCallEliminationPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createReassociatePass());
PM.add(llvm::createLoopRotatePass());...
2013 Apr 17
3
[LLVMdev] [polly] pass ordering
...tion passes
/// of Polly. The set of optimization passes scheduled here is probably not yet
/// optimal. TODO: Optimize the set of canonicalization passes.
static void registerCanonicalicationPasses(llvm::PassManagerBase &PM) {
PM.add(llvm::createPromoteMemoryToRegisterPass());
PM.add(llvm::createInstructionCombiningPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createTailCallEliminationPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createReassociatePass());
PM.add(llvm::createLoopRotatePass());
PM.add(llvm::createInstructionCombiningPass());
if (!SCEVCodegen)...
2008 Dec 19
2
[LLVMdev] strange behaviour after extracting optimization pass code
...works as
expected):
-----------------------------
std::string functionName = "main";
llvm::Module* mod = some arbitrary valid modulepointer;
llvm::ExistingModuleProvider mp(mod);
llvm::FunctionPassManager fpm(&mp);
fpm.add(new llvm::TargetData(mod));
fpm.add(llvm::createInstructionCombiningPass());
fpm.add(llvm::createReassociatePass());
fpm.add(llvm::createGVNPass());
fpm.add(llvm::createCFGSimplificationPass());
fpm.run(*f);
//...get execution engine
//... call execEngine->getPointerToFunction()
//... execute function
-----------------------------
Now if I extr...
2012 Sep 10
2
[LLVMdev] Dead Store Elimination
Hi,
Here is the result of optimization using the following passes:
llvm::createBasicAliasAnalysisPass()
llvm::createInstructionCombiningPass()
llvm::createReassociatePass()
llvm::createGVNPass()
llvm::createCFGSimplificationPass()
The optimized IR seems to contain what look like dead stores on %8 and
%9 in basic blocks 7 and haveData. How can I get rid of them?
Thanks,
Vinayak
define internal void @block0() {
entry:
%0 = call i8...
2011 Dec 27
2
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
Hi!
before InstCombine (llvm::createInstructionCombiningPass()) I have
a trunc from i8 to i1 and then a select:
%45 = load i8* @myGlobal, align 1
%tobool = trunc i8 %45 to i1
%cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00
after instCombine I have:
%29 = load i8* @myGlobal, align 1
%30 = and i8 %29, 1
%tobool = icmp ne i8 %30, 0
%cond =...
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
...ly. The set of optimization passes scheduled here is probably not yet
> /// optimal. TODO: Optimize the set of canonicalization passes.
> static void registerCanonicalicationPasses(llvm::PassManagerBase &PM) {
> PM.add(llvm::createPromoteMemoryToRegisterPass());
> PM.add(llvm::createInstructionCombiningPass());
> PM.add(llvm::createCFGSimplificationPass());
> PM.add(llvm::createTailCallEliminationPass());
> PM.add(llvm::createCFGSimplificationPass());
> PM.add(llvm::createReassociatePass());
> PM.add(llvm::createLoopRotatePass());
> PM.add(llvm::createInstructionCom...
2013 Sep 25
0
[LLVMdev] [Polly] Move Polly's execution later
...rst loop optimization pass), but unfortunately Polly would generate incorrect code in that case (http://llvm.org/bugs/show_bug.cgi?id=17323).
By investigating those Polly canonicalization passes (polly/lib/RegisterPasses.cpp):
PM.add(llvm::createPromoteMemoryToRegisterPass());
PM.add(llvm::createInstructionCombiningPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createTailCallEliminationPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createReassociatePass());
PM.add(llvm::createLoopRotatePass());
PM.add(llvm::createInstructionCombiningPass());
We can s...
2010 Nov 15
6
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
...asses it sets up are:
// Set up the optimizer pipeline. Start with registering info about how the
// target lays out data structures.
OurFPM.add(new TargetData(*TheExecutionEngine->getTargetData()));
// Do simple "peephole" optimizations and bit-twiddling optzns.
OurFPM.add(createInstructionCombiningPass());
// Reassociate expressions.
OurFPM.add(createReassociatePass());
// Eliminate Common SubExpressions.
OurFPM.add(createGVNPass());
// Simplify the control flow graph (deleting unreachable blocks, etc).
OurFPM.add(createCFGSimplificationPass());
It does simplify _some_ things. For ex...
2013 Sep 17
4
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...eparationPass") when generate LLVMPolly.so
Fist. let's see the results of removing the first "InstructionCombining" pass like this:
static void registerCanonicalicationPasses(llvm::PassManagerBase &PM) {
PM.add(llvm::createPromoteMemoryToRegisterPass());
// PM.add(llvm::createInstructionCombiningPass()); //this is the most expensive canonicalization pass for flop benchmark
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createTailCallEliminationPass());
PM.add(llvm::createCFGSimplificationPass());
PM.add(llvm::createReassociatePass());
PM.add(llvm::createLoopRotatePass());...
2013 Sep 25
3
[LLVMdev] [Polly] Move Polly's execution later
...pass), but unfortunately Polly would generate incorrect code in that case (http://llvm.org/bugs/show_bug.cgi?id=17323).
>
> By investigating those Polly canonicalization passes (polly/lib/RegisterPasses.cpp):
> PM.add(llvm::createPromoteMemoryToRegisterPass());
> PM.add(llvm::createInstructionCombiningPass());
> PM.add(llvm::createCFGSimplificationPass());
> PM.add(llvm::createTailCallEliminationPass());
> PM.add(llvm::createCFGSimplificationPass());
> PM.add(llvm::createReassociatePass());
> PM.add(llvm::createLoopRotatePass());
> PM.add(llvm::createIn...
2013 Apr 17
2
[LLVMdev] [polly] pass ordering
...ptimization passes scheduled here is probably not yet
> >/// optimal. TODO: Optimize the set of canonicalization passes.
> >static void registerCanonicalicationPasses(llvm::PassManagerBase &PM) {
> > PM.add(llvm::createPromoteMemoryToRegisterPass());
> > PM.add(llvm::createInstructionCombiningPass());
> > PM.add(llvm::createCFGSimplificationPass());
> > PM.add(llvm::createTailCallEliminationPass());
> > PM.add(llvm::createCFGSimplificationPass());
> > PM.add(llvm::createReassociatePass());
> > PM.add(llvm::createLoopRotatePass());
> > PM.add(ll...
2013 Sep 22
4
[LLVMdev] [Polly] Move Polly's execution later
Hi Tobias,
At 2013-09-19 22:59:25,"Tobias Grosser" <tobias at grosser.es> wrote:
>On 09/19/2013 04:46 PM, Star Tan wrote:
>> Hi Tobias,
>>
>>
>> I am trying to move Polly later.
>>
>>
>> LLVM provides some predefined ExtensionPointTy:
>> EP_EarlyAsPossible,
>> EP_ModuleOptimizerEarly,
>>
2013 Apr 17
1
[LLVMdev] [polly] pass ordering
...uled here is
> > probably not yet
> > /// optimal. TODO: Optimize the set of canonicalization passes.
> > static void registerCanonicalicationPasses(llvm::PassManagerBase
> > &PM) {
> > PM.add(llvm::createPromoteMemoryToRegisterPass());
> > PM.add(llvm::createInstructionCombiningPass());
> > PM.add(llvm::createCFGSimplificationPass());
> > PM.add(llvm::createTailCallEliminationPass());
> > PM.add(llvm::createCFGSimplificationPass());
> > PM.add(llvm::createReassociatePass());
> > PM.add(llvm::createLoopRotatePass());
> > PM....
2011 Nov 04
2
[LLVMdev] Question on JIT optimizations
...w the
// target lays out data structures.
OurFPM.add(new TargetData(*TheExecutionEngine->getTargetData()));
// Provide basic AliasAnalysis support for GVN.
OurFPM.add(createBasicAliasAnalysisPass());
// Do simple "peephole" optimizations and bit-twiddling optzns.
OurFPM.add(createInstructionCombiningPass());
// Reassociate expressions.
OurFPM.add(createReassociatePass());
// Eliminate Common SubExpressions.
OurFPM.add(createGVNPass());
// Simplify the control flow graph (deleting unreachable blocks, etc).
OurFPM.add(createCFGSimplificationPass());
OurFPM.doInitialization();
// Set...
2011 Dec 28
3
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
>> Hi!
>>
>> before InstCombine (llvm::createInstructionCombiningPass()) I have
>> a trunc from i8 to i1 and then a select:
>>
>> %45 = load i8* @myGlobal, align 1
>> %tobool = trunc i8 %45 to i1
>> %cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00
>>
>> after instCombine I have:
>>
>> %29 = load...
2008 Dec 19
1
[LLVMdev] strange behaviour after extracting optimization pass code
...as
expected):
-----------------------------
std::string functionName = "main";
llvm::Module* mod = some arbitrary valid modulepointer;
llvm::ExistingModuleProvider mp(mod);
llvm::FunctionPassManager fpm(&mp);
fpm.add(new llvm::TargetData(mod));
fpm.add(llvm::createInstructionCombiningPass());
fpm.add(llvm::createReassociatePass());
fpm.add(llvm::createGVNPass());
fpm.add(llvm::createCFGSimplificationPass());
fpm.run(*f);
//...get execution engine
//... call execEngine->getPointerToFunction()
//... execute function
-----------------------------
Now if...
2011 Dec 28
0
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
On Dec 27, 2011, at 5:09 AM, Jochen Wilhelmy wrote:
> Hi!
>
> before InstCombine (llvm::createInstructionCombiningPass()) I have
> a trunc from i8 to i1 and then a select:
>
> %45 = load i8* @myGlobal, align 1
> %tobool = trunc i8 %45 to i1
> %cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00
>
> after instCombine I have:
>
> %29 = load i8* @myGlobal, align 1
> %30 =...
2012 Sep 10
0
[LLVMdev] Dead Store Elimination
Hi Vinayak,
> Here is the result of optimization using the following passes:
>
> llvm::createBasicAliasAnalysisPass()
> llvm::createInstructionCombiningPass()
> llvm::createReassociatePass()
> llvm::createGVNPass()
> llvm::createCFGSimplificationPass()
>
you should run the mem2reg pass too, and first.
> ; <label>:7 ; preds = %openSuccessBB
> %8 = alloca i64, align 8
Put alloca instruct...