Displaying 20 results from an estimated 20000 matches similar to: "What is ConstantExpr?"
2015 Mar 15
5
[LLVMdev] Alias analysis issue with structs on PPC
On Sun, Mar 15, 2015 at 4:34 PM Olivier Sallenave <ol.sall at gmail.com> wrote:
> Hi Daniel,
>
> Thanks for your feedback. I would prefer not to write a new AA. Can't we
> directly implement that traversal in BasicAA?
>
Can I ask why?
Outside of the "well, it's another pass", i mean?
BasicAA is stateless, so you can't cache, and you really don't
2016 Nov 09
10
Is the correct behavior of getelementptr i192* for opt + llc -march=aarch64?
Hi all,
opt and opt + llc generate the difference aarch64 asm code for the following LLVM code.
Is it intended behavior?
I expected (A) because I cast %p from i192* to i64*.
The information is dropped by opt and 8-byte padding is inserted or I write a bad code?
% cat a.ll
define void @store0_to_p4(i192* %p)
{
%p1 = bitcast i192* %p to i64*
%p2 = getelementptr i64, i64* %p1, i64 3
%p3 =
2015 Mar 17
2
[LLVMdev] Alias analysis issue with structs on PPC
Hal Finkel <hfinkel at anl.gov> wrote on 16.03.2015 17:56:20:
> If you want to do it at a clang level, the right thing to do is to
> fixup the ABI lowerings for pointers to keep them pointers in this case.
> So this is an artifact of the way that we pass structures, and
> constructing a general solution at the ABI level might be tricky.
> I've cc'd Uli, who did most
2019 Aug 08
2
Suboptimal code generated by clang+llc in quite a common scenario (?)
I found a something that I quite not understand when compiling a common piece of code using the -Os flags.
I found it while testing my own backend but then I got deeper and found that at least the x86 is affected as well. This is the referred code:
char pp[3];
char *scscx = pp;
int tst( char i, char j, char k )
{
scscx[0] = i;
scscx[1] = j;
scscx[2] = k;
return 0;
}
The above gets
2015 Nov 13
2
revision 252902
The test case that you added in this revision fails on several of the
power buildbots (for example,
http://lab.llvm.org:8011/builders/clang-ppc64-elf-linux2/builds/20127)
and also when I build it locally:
FAIL: Clang :: CodeGenCXX/main-norecurse.cpp (2951 of 27722)
******************** TEST 'Clang :: CodeGenCXX/main-norecurse.cpp'
FAILED ********************
Script:
--
2017 Jun 17
5
LoopVectorize fails to vectorize loops with induction variables with PtrToInt/IntToPtr conversions
Hello all,
There is a missing vectorization opportunity issue with clang 4.0 with
the file attached.
Indeed, when compiled with -O2, the "op_distance" function get
vectorized, but not the "op" one.
For information, this test case has been reduced from a file generated
by the Pythran compiler (https://github.com/serge-sans-paille/pythran).
If we take a look at the generated
2015 Aug 20
3
[RFC] Aggreate load/store, proposed plan
----- Original Message -----
> From: "Mehdi Amini via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "deadal nix" <deadalnix at gmail.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Wednesday, August 19, 2015 7:24:28 PM
> Subject: Re: [llvm-dev] [RFC] Aggreate load/store, proposed plan
>
> Hi,
>
> To be sure,
2015 Jan 02
2
[LLVMdev] Evaluation of offsetof() macro
On Fri, Jan 2, 2015 at 2:20 AM, David Majnemer <david.majnemer at gmail.com>
wrote:
>
>
> On Fri, Jan 2, 2015 at 1:58 AM, Vadim Chugunov <vadimcn at gmail.com> wrote:
>
>> Hi!
>> LLVM has a class, ConstantExpr, that is very handy for compile-time
>> evaluation of const expressions. Unfortunately I cannot find any methods
>> in it that would be
2015 Jul 24
2
[LLVMdev] SIMD for sdiv <2 x i64>
On 07/24/2015 03:42 AM, Benjamin Kramer wrote:
>> On 24.07.2015, at 08:06, zhi chen <zchenhn at gmail.com> wrote:
>>
>> It seems that that it's hard to vectorize int64 in LLVM. For example, LLVM 3.4 generates very complicated code for the following IR. I am running on a Haswell processor. Is it because there is no alternative AVX/2 instructions for int64? The same thing
2015 Nov 05
2
[PATCH] D14227: Add a new attribute: norecurse
> On 2015-Nov-05, at 08:31, Aaron Ballman <aaron at aaronballman.com> wrote:
>
> On Thu, Nov 5, 2015 at 11:26 AM, James Molloy <james at jamesmolloy.co.uk> wrote:
>> Ah I see.
>>
>> I can't think of a way that would help users in any particular way offhand.
>> I hadn't considered exposing it to clang users - do you think there is merit
2018 Jul 14
2
Lowering a reasonably complex struct seems to create over complex and invalid assembly fixups on some targets
When I compile this LLVM IR….
@0 = private constant [19 x i8] c"V4main10Brightness\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip"
@1 = private constant [9 x i8] c"Vs5UInt8\00", section "__TEXT,__swift3_typeref, regular, no_dead_strip"
@2 = private constant [18 x i8] c"currentBrightness\00", section "__TEXT,__swift3_reflstr,
2016 Aug 30
2
TryToShrinkGlobalToBoolean in GlobalOpt.cpp issue
Yes, the full test case is:
static int x = 100;
int y = whatever;
int main() {
x = -101;
y = whatever that's not whatever above;
printf("%d\n", y);
printf("%d\n", x);
return 0;
}
You are correct, in the above test case the globalopt does not make the
transformation.... however, I think the original issue still stands, it
really shouldn't be doing it
2010 Jul 15
1
[LLVMdev] Figuring out the parameters of the Call Instruction
Hi Duncan,
Thanks for pointing out my mistake. I will reword my questions.
//C code
int var1; //global
int a, b;
foo(a, b);
bar(c);
generates following
//LLVM IR
%1 = load a;
%2 = load b;
call foo(%1, %2)
call bar(@var1)
CallInst.getOperand(1).getNameStr() on foo, returns null,
but on bar returns var1.
Similarly, for
call void @p_ptr(i64 ptrtoint (%struct.my_struct* @abc to i64))
nounwind,
2010 Nov 09
2
[LLVMdev] Next round of DWARF issues/questions
On Mon, Nov 8, 2010 at 9:56 AM, Devang Patel <dpatel at apple.com> wrote:
>
> On Nov 6, 2010, at 7:35 PM, Talin wrote:
>
> After to speaking to Devang and a number of other people at the developer's
> conference, I was able to make some forward progress on getting debugging to
> work. I'm now able to actually single-step through my program and set
> breakpoints,
2015 Aug 21
3
[RFC] Aggreate load/store, proposed plan
----- Original Message -----
> From: "deadal nix" <deadalnix at gmail.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "Mehdi Amini" <mehdi.amini at apple.com>, "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Friday, August 21, 2015 1:24:04 AM
> Subject: Re: [llvm-dev] [RFC] Aggreate load/store, proposed plan
>
2015 Aug 20
2
[RFC] Aggreate load/store, proposed plan
----- Original Message -----
> From: "deadal nix" <deadalnix at gmail.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "Mehdi Amini" <mehdi.amini at apple.com>, "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Thursday, August 20, 2015 4:09:17 PM
> Subject: Re: [llvm-dev] [RFC] Aggreate load/store, proposed plan
>
2015 Jul 24
0
[LLVMdev] SIMD for sdiv <2 x i64>
------------------------------------ IR
------------------------------------------------------------------
if.then.i.i.i.i.i.i: ; preds = %if.then4
%S25_D = zext <2 x i32> %splatLDS17_D.splat to <2 x i64>
%umul_with_overflow.i.iS26_D = shl <2 x i64> %S25_D, <i64 3, i64 3>
%extumul_with_overflow.i.iS26_D = extractelement <2 x i64>
2016 Oct 18
2
Proposal: arbitrary relocations in constant global initializers
To the right list this time.
On Tue, Oct 18, 2016 at 12:43 PM Eric Christopher <echristo at gmail.com>
wrote:
> Hi Peter,
>
> Coming back to his now.
>
>
> IFCC, the previous attempt to teach LLVM to emit jump tables, was removed
> for complicating how functions are emitted, in particular requiring a
> subtarget-specific instruction emitter available in
2015 Jul 24
1
[LLVMdev] SIMD for sdiv <2 x i64>
This snippet of IR is interesting:
%sub.ptr.div.iS37_D = sdiv <2 x i64> %sub.ptr.sub.iS36_D, <i64 24,
i64 24>
%cmp10S38_D = icmp ugt <2 x i64> %sub.ptr.div.iS37_D,
%splatInsMapS1_D.splat
%zextS39_D = sext <2 x i1> %cmp10S38_D to <2 x i64>
%BCS39_D = bitcast <2 x i64> %zextS39_D to i128
%mskS39_D = icmp ne i128 %BCS39_D, 0
br i1 %mskS39_D,
2014 May 23
3
[LLVMdev] Changing the design of GlobalAliases to represent what is actually possible in object files.
> I agree that this accurately summarizes both (1) what’s expressible in
> current object file formats and (2) what we’re likely to want to need from
> global aliases.
>
>> The tool we have in llvm for creating these extra labels is the GlobalAlias.
>>
>> One way of representing the above uses is to be explicit: a label is
>> created with a specific value or at