Displaying 20 results from an estimated 1000 matches similar to: "Regarding a TODO in InstructionCombining"
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]
03C20027 movaps xmmword ptr ds:[164E799h],xmm0
03C2002E
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/Transforms/Scalar/
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() &&
2015 Feb 24
2
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
On Mon, Feb 23, 2015 at 2:17 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original 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
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
2019 Jul 09
2
[LLVM] Infinite loop during LLVM InstructionCombining pass optimization
If you're able to reproduce the infinite loop with -O3 then you should
be able to dump out the IR that causes `opt -instcombine` to infloop,
unless the bug is truly esoteric (e.g. only caused by a specific
use-list ordering). Maybe take a closer look at the output from `opt
-print-before-all -O3`?
Alternatively you can use bugpoint to minimize the IR to get a small
reproducer that causes
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
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
2011 May 16
0
[LLVMdev] InstructionCombining.cpp inconsistency in whether it modifies the CFG?
Hi Michael,
> 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.
that argument should be set to true if the pass only looks at the CFG, i.e.
whatever it computes/does is only a function of the CFG, and doesn't otherwise
depend on what
2015 Mar 16
2
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
----- Original Message -----
> From: "Jingyue Wu" <jingyue at google.com>
> To: "Daniel Berlin" <dberlin at dberlin.org>, "Mark Heffernan" <meheff at google.com>, "Hal Finkel" <hfinkel at anl.gov>
> Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Friday, March 13, 2015 1:31:59 PM
>
2014 Nov 24
3
[LLVMdev] bx instruction getting generated in arm assembly for O1
Hi Mayur,
> On 24 Nov 2014, at 07:00, MAYUR PANDEY <mayur.p at samsung.com> wrote:
> In the assembly generated with O0, we are getting the "blx" instruction whereas with O1 we get "bx" (in 3.4.2 we used to get "blx" for both O0 and O1).
>
> Is this because of this patch: [llvm] r214959 - ARM: do not generate BLX instructions on Cortex-M CPUs
2017 Oct 30
3
Gluster Scale Limitations
Hi all,
Are there any scale limitations in terms of how many nodes can be in a single Gluster Cluster or how much storage capacity can be managed in a single cluster? What are some of the large deployments out there that you know of?
Thanks,
Mayur
***************************Legal Disclaimer***************************
"This communication may contain confidential and privileged material for
2013 Sep 25
2
[LLVMdev] initialization list with conversion operator dont work properly and report error
Actually it should have not thrown error at all. it works fine with gcc.
And the part of code which you mentioned is not getting hit at all. Maybe
some difference in parsing is there.
On Wed, Sep 25, 2013 at 5:29 AM, Eli Friedman <eli.friedman at gmail.com>wrote:
> On Mon, Sep 23, 2013 at 11:43 PM, Mayur Pandey <mayurthebond at gmail.com>wrote:
>
>> for the following
2015 Mar 13
3
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
On Fri, Mar 13, 2015 at 10:16 AM Mark Heffernan <meheff at google.com> wrote:
> On Thu, Mar 12, 2015 at 2:34 PM, Hal Finkel <hfinkel at anl.gov> wrote:
>
>> It is not clear to me at all that preventing the merging is the right
>> solution. There are a large number of analysis, including alias analysis,
>> and optimizations that use GetUnderlyingObject, and
2012 Nov 29
2
[LLVMdev] operator overloading fails while debugging with gdb for i386
For the given test:
class A1 {
int x;
int y;
public:
A1(int a, int b)
{
x=a;
y=b;
}
A1 operator+(const A1&);
};
A1 A1::operator+(const A1& second)
{
A1 sum(0,0);
sum.x = x + second.x;
sum.y = y + second.y;
return (sum);
}
int main (void)
{
A1 one(2,3);
A1 two(4,5);
return 0;
}
when the exectable of this code is debugged in gdb for i386, we dont get the
2013 Sep 25
0
[LLVMdev] initialization list with conversion operator dont work properly and report error
I'm not really an overload resolution expert, so I could be wrong. Anyway,
please file a bug report (http://llvm.org/bugs/), and our overload
resolution experts will take a look. :)
-Eli
On Wed, Sep 25, 2013 at 6:34 AM, Mayur Pandey <mayurthebond at gmail.com>wrote:
> Actually it should have not thrown error at all. it works fine with gcc.
> And the part of code which you
2017 Nov 02
0
Gluster Scale Limitations
On Tue, 31 Oct 2017 at 03:32, Mayur Dewaikar <mdewaikar at commvault.com>
wrote:
> Hi all,
>
> Are there any scale limitations in terms of how many nodes can be in a
> single Gluster Cluster or how much storage capacity can be managed in a
> single cluster? What are some of the large deployments out there that you
> know of?
>
>
The current design of GlusterD is not
2012 Dec 01
2
[LLVMdev] operator overloading fails while debugging with gdb for i386
Hi,
Structures are passed by pointer, so the return value is not actually in eax. That code gets transformed into something like:
void sum(A1 *out, const A1 one, const A1 two) {
out->x = one.x + two.x
out->y = one.y + two.y
}
So actually the function ends up returning void and operating on a hidden parameter, so %eax is dead at the end of the function and should not be being relied
2015 Mar 12
3
[LLVMdev] Question about shouldMergeGEPs in InstructionCombining
I think it would make sense for (1) and (2). I am not sure if (3) is
feasible in instcombine. (I am not too familiar with LoopInfo)
For the Octasic's Opus platform, I modified shouldMergeGEPs in our fork to:
if (GEP.hasAllZeroIndices() && !Src.hasAllZeroIndices() &&
!Src.hasOneUse())
return false;
return Src.hasAllConstantIndices(); // was return false;
2008 Jul 10
0
[LLVMdev] InstructionCombining forgets alignment of globals
I think I found it. In InstCombiner::ComputeMaskedBits we have the following
lines:
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