Displaying 20 results from an estimated 38 matches for "machinesinking".
2014 Sep 05
3
[LLVMdev] [PATCH] [MachineSinking] Conservatively clear kill flags after coalescing.
Hi Quentin,
Jonas looked further into the problem below, and asked me to submit his patch. Note the we have our own out-of-tree target, and we have not been able to reproduce this problem on an in-tree target. /Patrik Hägglund
[MachineSinking] Conservatively clear kill flags after coalescing.
This solves the problem of having a kill flag inside a loop
with a definition of the register prior to the loop:
%vreg368<def> ...
Inside loop:
%vreg520<def> = COPY %vreg368
%vreg568<def,tied1> = add %vreg341&l...
2014 Sep 05
5
[LLVMdev] [PATCH] [MachineSinking] Conservatively clear kill flags after coalescing.
...>
>>> Hi Quentin,
>>>
>>> Jonas looked further into the problem below, and asked me to submit his patch. Note the we have our own out-of-tree target, and we have not been able to reproduce this problem on an in-tree target. /PatrikHägglund
>>>
>>> [MachineSinking] Conservatively clear kill flags after coalescing.
>>>
>>> This solves the problem of having a kill flag inside a loop
>>> with a definition of the register prior to the loop:
>>>
>>> %vreg368<def> ...
>>>
>>> Inside loop:
>...
2015 Oct 13
2
MachineSink optimization in code containing a setjmp
Hello LLVM-dev,
I think I've found an issue with the MachineSink optimization on a program
that uses setjmp. It looks like MachineSink will happily move a machine
instruction into a following machine basic block (not necessarily a
successor), even when that later block can be reached through a setjmp.
Here is some example debug output from llc that I'm seeing:
Sinking along critical
2018 May 08
3
DEBUG INFO: improve handling of DBG_VALUEs and DebugLocs in CodeGen
Hi, (Resent with proper subject line)
I recently found myself in trouble because the crash I had disappeared
with -g, so I could not debug the program. This happened because the
optimizer did not remember to consider DBG_VALUEs instruction so it
changed its behavior, and the bug went hiding.
I then started discussing this onhttps://reviews.llvm.org/D45878, and
2011 Jun 03
0
[LLVMdev] MachineSink and EFLAGS
Hi, Bill and Jakob.
I don't quite understand. I am talking about CMOV_GR* instructions which are conservatively marked as clobbering EFLAGS in X86InstrCompiler.td. Doesn't that mean there cannot be any use of EFLAGS in subsequent instructions before it is defined by some other instruction?
I also don't understand the remark about resetting EFLAGS. What kind of reset is meant? In case
2011 Jun 02
0
[LLVMdev] MachineSink and EFLAGS
On Jun 2, 2011, at 3:53 AM, Galanov, Sergey wrote:
> Hi Bill.
>
> Thank you very much! Now I see my understanding was incorrect :) A dependence from a single physreg-defining instruction (like CMP or TEST) is allowed to be shared in several instructions unless that register is not clobbered (and this is what we have with CMOV_FR64). Wouldn't it be safe then to not set the live-in
2011 Jun 02
2
[LLVMdev] MachineSink and EFLAGS
On Jun 2, 2011, at 12:58 PM, Bill Wendling wrote:
> On Jun 2, 2011, at 3:53 AM, Galanov, Sergey wrote:
>
>> Hi Bill.
>>
>> Thank you very much! Now I see my understanding was incorrect :) A dependence from a single physreg-defining instruction (like CMP or TEST) is allowed to be shared in several instructions unless that register is not clobbered (and this is what we
2018 May 08
0
DEBUG INFO: improve handling of DBG_VALUEs and DebugLocs in CodeGen
> On May 7, 2018, at 11:29 PM, Jonas Paulsson via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hi, (Resent with proper subject line)
>
> I recently found myself in trouble because the crash I had disappeared
> with -g, so I could not debug the program. This happened because the
> optimizer did not remember to consider DBG_VALUEs
2011 Jun 02
2
[LLVMdev] MachineSink and EFLAGS
Hi Bill.
Thank you very much! Now I see my understanding was incorrect :) A dependence from a single physreg-defining instruction (like CMP or TEST) is allowed to be shared in several instructions unless that register is not clobbered (and this is what we have with CMOV_FR64). Wouldn't it be safe then to not set the live-in flag in EmitLoweredSelect for instructions which are marked as
2011 Jun 01
0
[LLVMdev] MachineSink and EFLAGS
On Jun 1, 2011, at 9:18 AM, Galanov, Sergey wrote:
> Hello.
>
> I am not sure this is the right place to ask but here is my question. About a year ago there was a fix of some obscure bug (rdar://problem/8030636 which is located on the internal Apple bugtracker I believe and so not available to the general public J)
> Some discussion can be found here:
2011 Jun 05
1
[LLVMdev] MachineSink and EFLAGS
Thanks for spelling it out, now I understand.
On Jun 5, 2011, at 6:11 AM, Galanov, Sergey wrote:
> Well, the point is CMOV_GR* are marked clobbering EFLAGS conservatively just in case they turn out to be lowered into a sequence containing XOR %reg,%reg which indeed clobbers EFLAGS. This means there might not be any instruction which actually uses this EFLAGS value.
This actually looks like a
2011 Jun 05
0
[LLVMdev] MachineSink and EFLAGS
Well, the point is CMOV_GR* are marked clobbering EFLAGS conservatively just in case they turn out to be lowered into a sequence containing XOR %reg,%reg which indeed clobbers EFLAGS. This means there might not be any instruction which actually uses this EFLAGS value.
For an example we can look no further than the actual test which has been disabled after the fix
2011 Jun 03
2
[LLVMdev] MachineSink and EFLAGS
On Jun 3, 2011, at 2:59 AM, Galanov, Sergey wrote:
> Hi, Bill and Jakob.
>
> I don't quite understand. I am talking about CMOV_GR* instructions which are conservatively marked as clobbering EFLAGS in X86InstrCompiler.td. Doesn't that mean there cannot be any use of EFLAGS in subsequent instructions before it is defined by some other instruction?
>
> I also don't
2011 Jun 01
2
[LLVMdev] MachineSink and EFLAGS
Hello.
I am not sure this is the right place to ask but here is my question. About a year ago there was a fix of some obscure bug (rdar://problem/8030636 which is located on the internal Apple bugtracker I believe and so not available to the general public :))
Some discussion can be found here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20100531/102160.html. Unfortunately, no
2018 May 04
0
gberry@codeaurora.org
Hi,
I recently found myself in trouble because the crash I had disappeared
with -g, so I could not debug the program. This happened because the
optimizer did not remember to consider DBG_VALUEs instruction so it
changed its behavior, and the bug went hiding.
I then started discussing this on https://reviews.llvm.org/D45878, and
since this is something that should be handled by all different
2013 Sep 06
5
[LLVMdev] Extracting libmachine from libcodegen (bug 1121)
Hi,
One of the long-standing code clean-up bugs in Bugzilla is to extract
the Machine* code from the CodeGen library into a separate one, on
which CodeGen depends (
http://llvm.org/bugs/show_bug.cgi?id=1121).
I'd like to start working on this. The general approach I'm planning to take is:
1. Identify which code to move.
2. Eliminate all dependencies that the Machine code has on the
2015 May 13
8
[LLVMdev] RFC: Convergent attribute
Below is a proposal for a new "convergent" intrinsic attribute and MachineInstr property, needed for correctly modeling many SPMD/SIMT programming models in LLVM. Comments and feedback welcome.
—Owen
In order to make LLVM more suitable for programming models variously called SPMD
and SIMT, we would like to propose a new intrinsic and MachineInstr annotation
called
2017 Jul 27
2
GEP with a null pointer base
David,
-fsanitize=undefined sounds great, but is not quite what I want.
I recently ran into a problem with "CodeGen/MachineSink.cpp” [*], for a target
that has to expand Select into control flow.
The original IR had two select in a row that were based on the same condition,
so the CMP that sets the FLAGS reg in the second select was MCSE’ed to the
earlier CMP in the first
2020 Nov 06
2
[DebugInfo] A value-tracking variable location update
Hi debug-info folks,
Time for another update on the variable location "instruction referencing"
implementation I've been doing, see this RFC [0, 1] for background. It's now at
the point where I'd call it "done" (as far as software ever is), and so it's a
good time to look at what results it produces. And here are the
scores-on-the-doors using llvm-locstats, on
2020 Feb 24
5
[RFC] DebugInfo: A different way of specifying variable locations post-isel
Hi debuginfo cabal,
tl;dr: I'd like to know what people think about an alternative to
DBG_VALUE instructions describing variable locations in registers,
virtual or real. Before instruction selection in LLVM-IR we identify
the _values_ of variables [0] by the instruction that computes the
value; I believe we should be able to do the same post-isel, and it
would avoid having to analyse register