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...