Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Instruction Selection sanity check"
2015 Jul 28
1
[LLVMdev] Adding a stack probe function attribute
On Tue, Jul 28, 2015 at 6:34 PM, Reid Kleckner <rnk at google.com> wrote:
> On Tue, Jul 28, 2015 at 2:25 AM, John Kåre Alsaker
> <john.mailinglists at gmail.com> wrote:
>>
>> On Tue, Jul 28, 2015 at 12:44 AM, Reid Kleckner <rnk at google.com> wrote:
>> > Yeah, the function attributes section of LangRef is a reasonable place
>> > to
>>
2015 Aug 16
2
[LLVMdev] Adding a stack probe function attribute
I started to implement inlining of the stack probe function based on
Microsoft's inlined stack probes in
https://github.com/Microsoft/llvm/tree/MS.
Do we know why the stack pointer cannot be updated in a loop (which
results in ideal code)? I noticed that was commented in Microsoft's
code.
I suspect this is due to debug or unwinding information, since it is
allowed on Windows x86-32.
I
2008 Sep 03
2
[LLVMdev] Codegen/Register allocation question.
Hi LLVMers,
I have finally sorted out licensing issues and found some time, so I'm
trying to port my PBQP register allocator to 2.4 in order to
contribute it (if you want it). I've run into a bug that has me
confused though.
I'm currently failing the following assertion:
llc: VirtRegMap.cpp:1733:
void<unnamed>::LocalSpiller::RewriteMBB(llvm::MachineBasicBlock&,
2010 Aug 26
2
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On Aug 26, 2010, at 12:59 PMPDT, Eric Christopher wrote:
> On Aug 26, 2010, at 12:25 PM, Yuri wrote:
>> On 08/26/2010 11:53, Eric Christopher wrote:
>>> Could you get it to print out the instruction when it happens?
>>> (just change the line above the error message to print it out to
>>> errs()).
>>>
>>> It basically means that a pseudo
2008 Sep 04
0
[LLVMdev] Codegen/Register allocation question.
On Sep 3, 2008, at 5:58 AM, Lang Hames wrote:
> Hi LLVMers,
>
> I have finally sorted out licensing issues and found some time, so I'm
> trying to port my PBQP register allocator to 2.4 in order to
Nice! We would definitely welcome your contribution.
>
> contribute it (if you want it). I've run into a bug that has me
> confused though.
>
> I'm currently
2018 Feb 09
2
[X86] MoveImm flag for instructions
Hi,
I had (naively?) expected that the instruction to move immediate to
register or memory (such as MOV32mi, MOV32ri, MOV64mi32, MOV64ri,
MOV64ri32) would be marked with the flag MCID::MovImm via the
X86InstrInfo.td (and hence in the generated X86GenInstrInfo.inc).
I do not see that to be the case.
Can someone please tell me if my expectation is flawed? Is there a
better/different way to
2016 Jan 15
3
Help handling opaque AArch64 immediates
Hello LLVM,
I'm playing with a new ISD::OPAQUE instruction to make hoisting first
class and eliminate a lot of tweaky flag setting/checking around
opaque constants. It's going well for the IR and x86, but I now I
need to sort out details for all the other targets.
To start, can someone please advise on the AAarch64 equivalent of
these X86 patterns?
// Opaque values become mov immediate
2010 Aug 27
2
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On Aug 26, 2010, at 11:34 PMPDT, Yuri wrote:
> On 08/26/2010 13:17, Dale Johannesen wrote:
>>>> Insn before the error: TCRETURNri64 %RAX<kill>, 0, %RDI<kill>,
>>>> %RAX<imp-def,dead>, %RDI<imp-def,dead>, %RSP<imp-use>, ...
>>>
>>> Odd. I thought TCReturn was being lowered. At any rate can you
>>> file a bug
2014 Dec 10
2
[LLVMdev] Virtual register problem in X86 backend
Hi,
Thx for your help...
Here is the IR code:
; ModuleID = 'foo_bar.c'
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@.str = private unnamed_addr constant [6 x i8] c"MAIN\0A\00", align 1
; Function Attrs: nounwind uwtable
define i32 @main(i32 %argc, i8** %argv) #0 {
entry:
%retval = alloca i32,
2018 Feb 09
2
[X86] MoveImm flag for instructions
I am trying to categorize the machine instructions based on associated
static (i.e., as encoded in .td file) machine description and the
corresponding APIs.
I would like to perform appropriate actions based on the kind of
instruction in a tool that I am working on.
For example, I'd like to distinguish between memop instructions involving
immediate vs register. While it appears that I would be
2010 Aug 27
0
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On 08/26/2010 13:17, Dale Johannesen wrote:
>>> Insn before the error: TCRETURNri64 %RAX<kill>, 0, %RDI<kill>,
>>> %RAX<imp-def,dead>, %RDI<imp-def,dead>, %RSP<imp-use>, ...
>>
>> Odd. I thought TCReturn was being lowered. At any rate can you file
>> a bug with the .ll file that causes this?
>
> It should be getting
2014 Dec 08
2
[LLVMdev] Virtual register problem in X86 backend
Hi,
I'm having trouble using virtual register in the X86 backend.
I implemented a new intrinsic and I use a custom inserter. The goal of
the intrinsic is to set the content of the stack to zero at the end of
each function.
Here is my code:
MachineBasicBlock *
X86TargetLowering::EmitBURNSTACKWithCustomInserter(
MachineInstr *MI,
MachineBasicBlock
2010 Aug 27
0
[LLVMdev] What does this error mean: psuedo instructions should be removed before code emission?
On Aug 27, 2010, at 10:49 AM, Dale Johannesen wrote:
>
> On Aug 26, 2010, at 11:34 PMPDT, Yuri wrote:
>
>> On 08/26/2010 13:17, Dale Johannesen wrote:
>>>>> Insn before the error: TCRETURNri64 %RAX<kill>, 0, %RDI<kill>, %RAX<imp-def,dead>, %RDI<imp-def,dead>, %RSP<imp-use>, ...
>>>>
>>>> Odd. I thought
2018 Feb 09
0
[X86] MoveImm flag for instructions
That flag is specifically used by the foldImmediate optimization in the
Peephole pass. We don't implement the TLI foldImmediate hook the peephole
pass uses on x86 so we have no reason to set the flag on any instructions
What are you trying to do?
~Craig
On Fri, Feb 9, 2018 at 11:45 AM, S. Bharadwaj Yadavalli via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hi,
>
> I had
2018 Feb 09
0
[X86] MoveImm flag for instructions
I think even if we did use it, MoveImmediate is intended for instructions
that move an immediate into a register rather than into memory. It's
supposed to indicate instructions that can be folded with the user of the
register by changing the user to an immediate instruction. And it wouldn't
be set on an instruction like "addl $0, %eax" or "addl $0, (%ecx)" either
since
2007 Jun 26
3
[LLVMdev] Live Intervals Question
For the x86-64 target, I tried compiling a simple hello world. I don't
understand the live interval information.
Here's the machine instructions as dumped by LiveIntervalAnalysis:
********** MACHINEINSTRS **********
file hello.c line 3 b:
0 FNSTCW16m <fi#0>, 1, %NOREG, 0
FNSTCW16m <fi#0> 1 %mreg(0) 0
4 MOV8mi <fi#0>, 1, %NOREG, 1, 2
MOV8mi <fi#0> 1 %mreg(0) 1 2
8
2008 Jan 16
4
[LLVMdev] LiveInterval Questions
I had been assuming that give a LiveRange a, a.valno->def, if
valid, would be the same as a.start. But this is apparently not
always the case. For example:
Predecessors according to CFG: 0x839d130 (#3) 0x8462780 (#35)
308 %reg1051 = MOV64rr %reg1227<kill>
312 %reg1052 = MOV64rr %reg1228<kill>
316 %reg1053 = MOV64rr %reg1229<kill>
320 %reg1054 = MOV64rr
2007 Jul 23
1
[LLVMdev] alias information on machine instructions
hi,
i know it took a while, but here is a patch that adds a list of source
values to machine instructions.
i modified the DAGISelEmiter to automatically catch regular
loads/stores. custom instructions and loads/stores rewritten by the
lowering pass are not automatically captured.
during the instruction selection a source value operand is added to the
DAG for patterns matching a load/store.
2008 Jan 17
0
[LLVMdev] LiveInterval Questions
On Jan 16, 2008, at 11:49 AM, David Greene wrote:
> I had been assuming that give a LiveRange a, a.valno->def, if
> valid, would be the same as a.start. But this is apparently not
> always the case. For example:
>
> Predecessors according to CFG: 0x839d130 (#3) 0x8462780 (#35)
> 308 %reg1051 = MOV64rr %reg1227<kill>
> 312 %reg1052 = MOV64rr %reg1228<kill>
2007 Jun 26
4
[LLVMdev] Live Intervals Question
Evan, thanks for responding so quickly.
On Tuesday 26 June 2007 14:11, Evan Cheng wrote:
> On Jun 26, 2007, at 11:20 AM, David A. Greene wrote:
> > 28 %AL<dead> = MOV8rr %reg1024<kill>, %EAX<imp-def>
> > MOV8rr %mreg(2)<d> %reg1024 %mreg(17)<d>
> > 32 CALL64pcrel32 <ga:printf>, %RDI<kill>, %RAX<imp-def>, %RCX<imp-
> >