Displaying 20 results from an estimated 600 matches similar to: "Should intrinsics llvm.eh.sjlj.setjmp be with isBarrier flag?"
2017 Oct 13
3
Machine Scheduler on Power PC: Latency Limit and Register Pressure
> On Oct 13, 2017, at 1:46 PM, Matthias Braun <matze at braunis.de> wrote:
>
> Yes, I've run into the problem myself that the Pending queue isn't even checked with the tryCandidate() logic and so takes priority over all other scheduling decisions.
>
> I personally would be open to changes in this area. To start the brainstorming I could imagine that we move nodes
2017 Oct 13
2
Machine Scheduler on Power PC: Latency Limit and Register Pressure
Hi,
I've been looking at the Machine Scheduler on Power PC. I am looking only
at the pre-RA machine scheduler and I am running it in the default
bi-directional mode (so, both top down and bottom up queues are
considered). I've come across an example where the scheduler picks a poor
ordering for the instructions which results in very high register pressure
which results in spills.
2009 Sep 24
0
[LLVMdev] Missing isBarrier on ARM/THUMB return instructions
isBarrier is not defined in BX_RET and tBX_RET instructions and the
Machine Instructions Verifier (-verify-machineinstrs) give errors about
that.
Is it normal that isBarrier is not defined on these instructions ?
2009 Sep 29
2
[LLVMdev] [PATCH] isBarrier is missing on "return" instructions
Hi, this is a small patch of ARM Instructions description because
"-verify-machineinstrs" complains about that.
This doesn't break the tests on my machine.
Regards
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch_barrier
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090929/84aca914/attachment.ksh>
2009 May 07
2
[LLVMdev] the different semantics between dwarf-eh and sjlj-eh
Hi,
>> from the exist llvm-ir it seems there are some common info for sjlj-eh
>> and dwarf-eh!
>> are there possible use the exist llvm-ir to generate exception table
> >for sjlj-eh ?
>No. There should be support from llvm-gcc. sjlj eh and dwarf eh have
>different semantics
different semantics ? !
I think llvm-gcc generate the IR should not include the exception
2017 Feb 09
2
Improving the split heuristics for the Greedy Register Allocator
On Wed, Feb 8, 2017 at 6:21 PM, Wei Mi <wmi at google.com> wrote:
> I have an issue that I've been wrestling with for quite some time and I'm
> hoping that someone with a deeper understanding of the register allocator
> can help me with.
>
> Namely, I am trying to teach RA to split a live range rather than
> allocating a CSR. I've attempted a very large number
2009 May 06
2
[LLVMdev] SJLJ EH
Hi,
>There's definitely more to it than the current intrinsics, which are
>there to support dwarf.
that's to say we need modify the llvm-gcc so the front end can
generate the sjlj-style IR,
>SJLJ exceptions rely on runtime library
>functions to register and unregister call frames which require
>unwinding, so we need to modify LLVM to handle generating those call
my
2009 May 06
0
[LLVMdev] SJLJ EH
Hi,
>There's definitely more to it than the current intrinsics, which are
>there to support dwarf.
from the exist llvm-ir it seems there are some common info for sjlj-eh
and dwarf-eh!
are there possible use the exist llvm-ir to generate exception table
for sjlj-eh ?
zhangzw
2009 May 07
0
[LLVMdev] llvm-gcc's sjlj-eh support
Hi,
many people suggest that if we want llvm to support sjlj-eh, we
should modify the llvm-gcc to generate sjlj-style IR.
yeah, I'm digging into the llvm-gcc now. there are some functions,
at the llvm-gcc
e.g
TreeToLLVM::CreateExceptionValues() ,
BasicBlock *TreeToLLVM::getPostPad(unsigned RegionNo),
void TreeToLLVM::EmitLandingPads(),
void TreeToLLVM::EmitPostPads() ,
void
2012 Dec 06
0
[LLVMdev] Exception handling: How to use SJLJ EH with invoke
Hello,
Can setjmp-longjmp excaption handling be mixed with invoke/landingpad? Can
LLVM treat a call to @llvm.eh.sjlj.longjmp as a thrown exception and go to
matching landingpad?
Does any reference implementation of SJLJ EH exists?
- Paweł
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2017 Jan 13
2
Improving the split heuristics for the Greedy Register Allocator
I have an issue that I've been wrestling with for quite some time and I'm
hoping that someone with a deeper understanding of the register allocator
can help me with.
Namely, I am trying to teach RA to split a live range rather than
allocating a CSR. I've attempted a very large number of tweaks to the costs
(both existing and experimental ones that I've added). However, despite all
2018 Sep 16
2
How to add a barrier pseudo instruction?
Hello all,
I want to add a custom intrinsic to the LLVM IR which would be lowered into
a pseudo instruction since it doesn't correspond to any real instruction
defined by the architecture. The speciality of this intrinsic/pseudo
instruction that it should behave like a scheduling barrier: every
instruction before the intrinsic has to be emitted before the intrinsic,
the same goes for all
2013 Mar 18
5
[LLVMdev] Hit a snag while attempting to write a backend - any advice?
Hi,
I've been experimenting with writing a backend for LLVM (3.2) (having
already written a frontend http://savourysnax.github.com/EDL), everything
was going reasonably ok ( calls/returns, epilogue, prologue, etc are all
working), up until I tried to place support for conditional branches.
Given this simple program :
int test(int c,int d)
{
if (c)
{
return
2013 Sep 18
2
[LLVMdev] How basic block layout is determined during scheduling?
Hi, guys,
I compiled a subroutine with -O2, and llvm backend produced codes like:
##################################################################
LBB0_32:
...
R31 = -1
R20 = R31 * R20;
....
bnz R2, LBB0_34
LBB0_31:
...
b LBB0_34
LBB0_33: # weird basic block?
R20 = R5
LBB0_34:
....
2008 Sep 14
3
[LLVMdev] Prevent a intrinsic to be reordered?
Hello, I have an intrinsic that matches to a asm instruction directly. This
intrinsic starts a coprocessor that can do anything.
If I put another instruction next to it (a multiplication for example), the
"llc" reorders and puts the intrinsic after the multiplication.
I have tried all:
- Setting the instruction like if it takes 256 cycles or 0 cycles.
- Setting the instruction with
2020 Jul 09
3
question on analyzeBranch and getFallThrough
I am working on a back end for an architecture whose jump via table instruction
includes the range check. If the index is out of range, the jump table
instruction just falls through. I implemented a pass to remove the range check
generated before the jump table instruction because it is superfluous.
This causes as assertion in MachineBlockPlacement.cpp:
2008 Sep 14
0
[LLVMdev] Prevent a intrinsic to be reordered?
Hello, Julio
> These later things are ignored, I don't know if when the intrinsic is
> lowered, then it doesn't matter (or perhaps the reorder is made
> before).
What is the description of the instruction you're lowering intrinsic
into? Have you looked for the instruction flags defined in Target.td
file? You instruction should definitely have "isBarrier" flag set.
2013 Sep 18
0
[LLVMdev] How basic block layout is determined during scheduling?
Hi Yang,
> bnz R2, LBB0_34
>
> I do not have any clue what happens when compiling with -O2.
> Can someone make a suggestion?
Is the "bnz" instruction marked "isBarrier" in your TableGen files? If
so, that would mean LLVM considers fallthrough impossible and decides
it can move LBB0_33 around at will. It's still very odd that it thinks
it can put it
2008 Sep 15
1
[LLVMdev] Prevent a intrinsic to be reordered?
Nothing... I'll show you all the info related to:
The intrinsic: def int_soru_sre : Intrinsic<[llvm_void_ty, llvm_i32_ty],
[IntrWriteMem]>;
The lower instruction (in MIPS):
class SORUI<bits<6> op, dag outs, dag ins, string asmstr, list<dag> pattern,
InstrItinClass itin>: FI<op, outs, ins, asmstr, pattern, itin>
{
let isBarrier = 1; // or call,
2010 Dec 14
2
[LLVMdev] Branch delay slots broken.
The Sparc, Microblaze, and Mips code generators implement branch delay
slots. They all seem to exhibit the same bug, which is not surprising
since the code is very similar. If I compile code with this snippit:
while (n--)
*s++ = (char) c;
I get this (for the Microblaze):
swi r19, r1, 0
add r3, r0, r0
cmp r3, r3, r7
beqid r3,