search for: instructioncombining

Displaying 20 results from an estimated 115 matches for "instructioncombining".

2008 Aug 20
1
[LLVMdev] new warning in InstructionCombining.cpp
/Volumes/mrs5/net/llvm/llvm/lib/Transforms/Scalar/ InstructionCombining.cpp: In member function ‘llvm::Instruction*<unnamed>::InstCombiner::visitAnd (llvm::BinaryOperator&)’: /Volumes/mrs5/net/llvm/llvm/lib/Transforms/Scalar/ InstructionCombining.cpp:3597: warning: ‘RHSCC’ may be used uninitialized in this function /Volumes/mrs5/net/llvm/llvm/lib/Transf...
2008 Jul 10
3
[LLVMdev] InstructionCombining forgets alignment of globals
Hi all, The InstructionCombining pass causes alignment of globals to be ignored. I've attached a replacement of Fibonacci.cpp which reproduces this (I used 2.3 release). Here's the x86 code it produces: 03C20019 movaps xmm0,xmmword ptr ds:[164E799h] 03C20020 mulps xmm0,xmmword ptr ds:[164E79Ah] 03C...
2015 Feb 24
2
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
...riginal Message ----- > > From: "Francois Pichet" <pichet2000 at gmail.com> > > To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> > > Sent: Sunday, February 22, 2015 5:34:11 PM > > Subject: [LLVMdev] Question about shouldMergeGEPs in InstructionCombining > > > > Hello > > > > I am not sure I understand the logic for merging GEPs in > > InstructionCombining.cpp: > > > > static bool shouldMergeGEPs (GEPOperator &GEP, GEPOperator &Src) { > > // If this GEP has only 0 indices, it is the same point...
2015 Feb 22
2
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
Hello I am not sure I understand the logic for merging GEPs in InstructionCombining.cpp: static bool shouldMergeGEPs(GEPOperator &GEP, GEPOperator &Src) { // If this GEP has only 0 indices, it is the same pointer as // Src. If Src is not a trivial GEP too, don't combine // the indices. if (GEP.hasAllZeroIndices() && !Src.hasAllZeroIndices() &&...
2016 Jun 12
2
Regarding a TODO in InstructionCombining
Hi, This is regarding a TODO mentioned in getIdentityValue function in InstructionCombining.cpp file. //TODO: We can handle other cases e.g. Instruction::And, Instruction::Or etc. I wanted to know what could be the use cases of implementing these. When I tried implementing these and wrote test cases for the same, the test cases would be optimized in InstructionSimplify before hitting th...
2008 Jul 10
0
[LLVMdev] InstructionCombining forgets alignment of globals
...time of GlobalValue creation, so I propose to add a constructor with an Alignment argument. From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Nicolas Capens Sent: Thursday, 10 July, 2008 12:18 To: 'LLVM Developers Mailing List' Subject: [LLVMdev] InstructionCombining forgets alignment of globals Hi all, The InstructionCombining pass causes alignment of globals to be ignored. I've attached a replacement of Fibonacci.cpp which reproduces this (I used 2.3 release). Here's the x86 code it produces: 03C20019 movaps xmm0,xmmword ptr ds:[...
2011 May 16
2
[LLVMdev] InstructionCombining.cpp inconsistency in whether it modifies the CFG?
InstCombine says in its getAnalysisUsage that it preserves the CFG, but for the 4th argument in its INITIALIZE_PASS call, it says false, which I believe corresponds to whether it preserves the CFG. Is this a mistake, or is there deeper meaning here? InstructionCombining.cpp:73-82 char InstCombiner::ID = 0; INITIALIZE_PASS(InstCombiner, "instcombine", "Combine redundant instructions", false, false) void InstCombiner::getAnalysisUsage(AnalysisUsage &AU) const { AU.addPreservedID(LCSSAID); AU.setPreservesCFG(); }
2019 Jul 09
2
[LLVM] Infinite loop during LLVM InstructionCombining pass optimization
...t; > > Best Regards, > > Y. Jeon. > > > ________________________________ > From: Sanjoy Das <sanjoy at playingwithpointers.com> > Sent: Monday, July 8, 2019 12:52:50 AM > To: Yuseok Jeon; llvm-dev; David Majnemer > Subject: Re: [LLVM] Infinite loop during LLVM InstructionCombining pass optimization > > +llvm-dev [usually it is best to CC the llvm dev list for these kinds > of questions] > > Also +David Majnemer for InstCombine. > > This looks like an LLVM bug to me if it reproduces on top of tree. > Can you dump out the IR input to InstCombine so that...
2013 Sep 13
2
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...d by Polly's canonicalization is the most significant one. We have found this problem before and I need to look into the details of canonicalization passes related to "Combine redundant instructions". > >OK. By investigating 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...
2015 Feb 25
2
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
...rancois Pichet" <pichet2000 at gmail.com> > Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>, "chandlerc" <chandlerc at gmail.com> > Sent: Tuesday, February 24, 2015 11:27:43 PM > Subject: Re: [LLVMdev] Question about shouldMergeGEPs in InstructionCombining > > w----- Original Message ----- > > From: "Francois Pichet" <pichet2000 at gmail.com> > > To: "Hal Finkel" <hfinkel at anl.gov> > > Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> > > Sent: Tuesday, Februar...
2013 Sep 14
0
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...ent_activity. There are four runs: pollyBasic (run 45): clang -O3 -Xclang -load -Xclang LLVMPolly.so pollyNoGenSCEV (run 44): clang -O3 -Xclang -load -Xclang LLVMPolly.so -mllvm -polly -mllvm -polly-codegen-scev pollyNoGenSCEV_1comb (run 46): same option as pollyNoGenSCEV but remove the first "InstructionCombining" canonicalization pass when generate LLVMPolly.so pollyNoGenSCEV_nocan (run 47): same option as pollyNoGenSCEV but remove all canonicalization passes (actually only keep "createCodePreparationPass") when generate LLVMPolly.so Fist. let's see the results of removing the first...
2011 May 16
0
[LLVMdev] InstructionCombining.cpp inconsistency in whether it modifies the CFG?
...y, and a transform pass P announces (using setPreservesCFG()) that it does not change the CFG. Then A does not need to be recomputed after P has run. So I think it is correct for InstCombine to not set this flag. Ciao, Duncan. Is this a > mistake, or is there deeper meaning here? > > InstructionCombining.cpp:73-82 > > char InstCombiner::ID = 0; > INITIALIZE_PASS(InstCombiner, "instcombine", > "Combine redundant instructions", false, false) > > void InstCombiner::getAnalysisUsage(AnalysisUsage&AU) const { > AU.addPreservedID(LCSSAID);...
2010 Jan 05
0
[LLVMdev] [llvm-commits] [llvm] r92458 - in /llvm/trunk: lib/Target/README.txt lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/or.ll
...>> implement an instcombine xform needed by clang's codegen >> on the example in PR4216. This doesn't trigger in the testsuite, >> so I'd really appreciate someone scrutinizing the logic for >> correctness. >> >> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original) >> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Jan 4 00:03:59 2010 >> @@ -5213,12 +5213,30 @@ >> return ReplaceInstUsesWith(I, B); >> } >> } >> - V1 = 0; V2 = 0; V3 = 0; >> + >> +...
2008 Jul 10
2
[LLVMdev] InstructionCombining forgets alignment of globals
Hi Nicolas, > if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) { > > unsigned Align = GV->getAlignment(); > > if (Align == 0 && TD && GV->getType()->getElementType()->isSized()) > > Align = TD->getPrefTypeAlignment(GV->getType()->getElementType()); > > It assumes that global values are always optimally
2008 Jul 10
0
[LLVMdev] InstructionCombining forgets alignment of globals
...ural alignment). Explicitly calling setAlignment works like a charm. So it's not an LLVM bug. Thanks, Nicolas -----Original Message----- From: Duncan Sands [mailto:baldrick at free.fr] Sent: Thursday, 10 July, 2008 14:41 To: llvmdev at cs.uiuc.edu Cc: Nicolas Capens Subject: Re: [LLVMdev] InstructionCombining forgets alignment of globals Hi Nicolas, > if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) { > > unsigned Align = GV->getAlignment(); > > if (Align == 0 && TD && GV->getType()->getElementType()->isSized()) > > Align = TD-&...
2008 Jul 10
1
[LLVMdev] InstructionCombining forgets alignment of globals
On Thursday 10 July 2008 07:46, Nicolas Capens wrote: > Hi Duncan, > > I see. I didn't know GlobalValue had a method for changing the alignment > (and that 0 meant natural alignment). Explicitly calling setAlignment works > like a charm. Nicolas, Where are you explicitly calling setAlignment? From llvm-gcc code? -Dave
2017 Jan 31
2
Folding zext from i1 into PHI nodes with only zwo incoming values.
...implications that has. Simply making FoldPHIArgOpIntoPHI act like FoldPHIArgZextsIntoPHI seemed like the safer option to me, but I wanted feedback on it before creating a PR. Do you want to go ahead with that minimal approach and create a PR yourself? Björn > Index: lib/Transforms/InstCombine/InstructionCombining.cpp > =================================================================== > --- lib/Transforms/InstCombine/InstructionCombining.cpp (revision > 293485) > +++ lib/Transforms/InstCombine/InstructionCombining.cpp (working copy) > @@ -88,12 +88,12 @@ > > /// Return true if i...
2012 Jul 05
0
[LLVMdev] Need reviewers for SCCP, LoopUnswitch, LazyValueInfo and InstructionCombining passes.
Hi all. Guys in accordance to PR1255 I need to add case-ranges support for passes listed in subject. Who can review some of these passes in nearest future? Thanks! -Stepan.
2002 Sep 17
1
[LLVMdev] Bug in InstructionCombining.cpp
ISSUE: This code: %bob = type { int } int %alias() { %pbob1 = alloca %bob %pbob2 = getelementptr %bob* %pbob1 ;pbob2 aliases pbob1 %pbobel = getelementptr %bob* %pbob2, long 0, ubyte 0 %rval = load int* %pbobel ret int %rval } Crashes when run through opt -instcombine. InstCombiner visits instructions in reverse declaration order, but
2013 Sep 17
4
[LLVMdev] [Polly] Compile-time and Execution-time analysis for the SCEV canonicalization
...-polly -polly-optimizer=none -polly-code-generator=none pNoGenSCEV_nocan (run 47): same option with pNoGenSCEV but replace the LLVMPolly.so by removing all Polly canonicalization passes pNoGenSCEV_procomb (run 51): same option with pNoGenSCEV but replace the LLVMPolly.so by removing only the "InstructionCombining" and "PromoteMemoryToRegister" canonicalization passes pOptSCEV (run 48): clang -O3 -load LLVMPolly.so -polly-codegen-scev -polly pOptSCEV_nocan (run 50): same option with pNoOptSCEV but replace the LLVMPolly.so by removing all Polly canonicalization passes pOptSCEV_procomb (run 52...