search for: callbr

Displaying 14 results from an estimated 14 matches for "callbr".

2019 Jun 28
3
[cfe-dev] [RFC] ASM Goto With Output Constraints
...jyknight at google.com> >>> wrote: >>> >>>> I think this is fine, except that it stops at the point where things >>>> actually start to get interesting and tricky. >>>> >>>> How will you actually handle the flow of values from the callbr into >>>> the error blocks? A callbr can specify requirements on where its outputs >>>> live. So, what if two callbr, in different branches of code, specify >>>> _different_ constraints for the same output, and list the same block as a >>>> possible e...
2019 Jul 01
2
[cfe-dev] [RFC] ASM Goto With Output Constraints
...wrote: >>>>> >>>>>> I think this is fine, except that it stops at the point where things >>>>>> actually start to get interesting and tricky. >>>>>> >>>>>> How will you actually handle the flow of values from the callbr into >>>>>> the error blocks? A callbr can specify requirements on where its outputs >>>>>> live. So, what if two callbr, in different branches of code, specify >>>>>> _different_ constraints for the same output, and list the same block as a &gt...
2019 Jun 27
2
[cfe-dev] [RFC] ASM Goto With Output Constraints
I think this is fine, except that it stops at the point where things actually start to get interesting and tricky. How will you actually handle the flow of values from the callbr into the error blocks? A callbr can specify requirements on where its outputs live. So, what if two callbr, in different branches of code, specify _different_ constraints for the same output, and list the same block as a possible error successor? How can the resulting phi be codegened? It'd su...
2019 Jul 02
2
[cfe-dev] [RFC] ASM Goto With Output Constraints
...gt;>> >>>>>>> I think this is fine, except that it stops at the point where things >>>>>>> actually start to get interesting and tricky. >>>>>>> >>>>>>> How will you actually handle the flow of values from the callbr into >>>>>>> the error blocks? A callbr can specify requirements on where its outputs >>>>>>> live. So, what if two callbr, in different branches of code, specify >>>>>>> _different_ constraints for the same output, and list the same bl...
2019 Jun 28
3
[cfe-dev] [RFC] ASM Goto With Output Constraints
...Thu, Jun 27, 2019 at 1:29 PM James Y Knight <jyknight at google.com> > wrote: > >> I think this is fine, except that it stops at the point where things >> actually start to get interesting and tricky. >> >> How will you actually handle the flow of values from the callbr into the >> error blocks? A callbr can specify requirements on where its outputs live. >> So, what if two callbr, in different branches of code, specify _different_ >> constraints for the same output, and list the same block as a possible >> error successor? How can the resu...
2019 Jun 27
5
[RFC] ASM Goto With Output Constraints
...> int vogon(unsigned a, unsigned b) { > asm goto("poetry %0, %1" : : "r"(a), "r"(b) : : error); > return a + b; > > error: > return -1; > } > > into the following LLVM IR: > > define i32 @vogon(i32 %a, i32 %b) { > entry: > callbr void asm sideeffect "poetry $0, $1", "r,r,X" > (i32 %a, i32 %b, i8* blockaddress(@vogon, %return)) > to label %asm.fallthrough [label %return] > > asm.fallthrough: > %add = add i32 %b, %a > br label %return > > return: > %retval.0...
2019 Jun 29
2
[cfe-dev] [RFC] ASM Goto With Output Constraints
...ote: On Thu, Jun 27, 2019 at 1:29 PM James Y Knight <jyknight at google.com<mailto:jyknight at google.com>> wrote: I think this is fine, except that it stops at the point where things actually start to get interesting and tricky. How will you actually handle the flow of values from the callbr into the error blocks? A callbr can specify requirements on where its outputs live. So, what if two callbr, in different branches of code, specify _different_ constraints for the same output, and list the same block as a possible error successor? How can the resulting phi be codegened? This is whe...
2019 Jun 27
1
[RFC] ASM Goto With Output Constraints
...; asm goto("poetry %0, %1" : : "r"(a), "r"(b) : : error); >> return a + b; >> >> error: >> return -1; >> } >> >> into the following LLVM IR: >> >> define i32 @vogon(i32 %a, i32 %b) { >> entry: >> callbr void asm sideeffect "poetry $0, $1", "r,r,X" >> (i32 %a, i32 %b, i8* blockaddress(@vogon, %return)) >> to label %asm.fallthrough [label %return] >> >> asm.fallthrough: >> %add = add i32 %b, %a >> br label %return >> &...
2019 Jun 27
3
[cfe-dev] [RFC] ASM Goto With Output Constraints
What about SelectionDAG representation? Currently we expand callbr to INLINEASM_BR and BR. Both of which are terminators. But in order to support outputs we would need to put CopyFromReg nodes between them. ~Craig On Thu, Jun 27, 2019 at 12:18 PM Nick Desaulniers via cfe-dev < cfe-dev at lists.llvm.org> wrote: > + CBL mailing list > > > On Th...
2018 Nov 03
2
[RFC] Implementing asm-goto support in Clang/LLVM
...e is required to be > a landing pad. On the contrary, "asm-goto" can support many output labels > in addition to fall through one and those labels represent regular code, > not landing pads. > > Hence, there is a need for introducing a new IR instruction. > > > The callbr instruction > ----------------- > > Our proposed approach is to introduce a new IR instruction named callbr > with the following syntax: > > callbr <return_type> <callee> (<argtype1> <arg1>, ...) to > label %normal or jump [label %transfe...
2018 Nov 04
2
[RFC] Implementing asm-goto support in Clang/LLVM
..."asm-goto" can support many output labels >>> in addition to fall through one and those labels represent regular code, >>> not landing pads. >>> >>> Hence, there is a need for introducing a new IR instruction. >>> >>> >>> The callbr instruction >>> ----------------- >>> >>> Our proposed approach is to introduce a new IR instruction named callbr >>> with the following syntax: >>> >>> callbr <return_type> <callee> (<argtype1> <arg1>, .....
2019 Feb 12
2
docs-llvm-html broken?
Hi, docs seem to be broken. e.g. r353563 adds docs for callbr, but https://llvm.org/docs/LangRef.html doesn't have it. trying to build the docs manually on my box: ninja docs-llvm-html FAILED: docs/CMakeFiles/docs-llvm-html cd /usr/local/google/home/kcc/llvm-build/docs && /usr/bin/sphinx-build -b html -d /usr/local/google/home/kcc/llvm-build/doc...
2019 Feb 12
3
docs-llvm-html broken?
...on't help the bots that build the docs, right? > > Cheers, > Jonas > > On Tue, Feb 12, 2019 at 10:17 AM Kostya Serebryany via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hi, >> >> docs seem to be broken. >> e.g. r353563 adds docs for callbr, but >> https://llvm.org/docs/LangRef.html doesn't have it. >> >> trying to build the docs manually on my box: >> ninja docs-llvm-html >> >> FAILED: docs/CMakeFiles/docs-llvm-html >> cd /usr/local/google/home/kcc/llvm-build/docs && /usr/bin/sphi...
2020 Jul 11
3
is a MachineBasicBlock a kind of superblock?
MachineBasicBlock allows for multiple terminators. Unconditional branches and returns are marked as terminators; the MIPS backend also marks conditional branches as terminators. The MachineBasicBlock then has a helper function getFirstTerminator which iterates from the first terminator to the end of the MBB. So it seems to me that an MBB is a kind of superblock, single entrance and multiple side