Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] Line number and merged calls"
2011 Jan 27
0
[LLVMdev] Update PHINode after extracting code
I guess I didn't have a clear question.
Suppose we have BB1 and BB2 both point to BB3.
BB1 has variable x. BB2 also as variable x.
BB3 will have PHINode for x with 2 value from BB1 and BB2.
BB1 BB2
\ /
BB3
Now if BB1 and BB2 is extracted into a function
(using ExtractCodeRegion), they will be replaced by
a basic block called codeRepl (which has a call to the extracted
2011 Jan 27
2
[LLVMdev] Update PHINode after extracting code
On 01/26/2011 07:50 PM, Vu Le wrote:
> I guess I didn't have a clear question.
>
> Suppose we have BB1 and BB2 both point to BB3.
> BB1 has variable x. BB2 also as variable x.
> BB3 will have PHINode for x with 2 value from BB1 and BB2.
> BB1 BB2
> \ /
> BB3
>
> Now if BB1 and BB2 is extracted into a function
> (using ExtractCodeRegion), they
2014 May 22
2
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
On May 22, 2014, at 3:51 PM, Chandler Carruth <chandlerc at google.com> wrote:
>
> On Thu, May 22, 2014 at 4:42 PM, Louis Gerbarg <lgg at apple.com> wrote:
> The problem that the above transform is technically illegal because “When indexing into a (optionally packed) structure, only i32 integer constants are allowed (when using a vector of indices they must all be the same
2014 May 23
2
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
----- Original Message -----
> From: "Chandler Carruth" <chandlerc at google.com>
> To: "Louis Gerbarg" <lgg at apple.com>
> Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Thursday, May 22, 2014 7:09:49 PM
> Subject: Re: [LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
>
>
>
>
>
2011 Jan 27
0
[LLVMdev] Update PHINode after extracting code
Hi Tobias,
If the PHI node at exit block of region R has multiple inputs from the R,
I split the exit block into 2.
The first block contains all PHI nodes whose input are all from the region.
The second is the new exit node.
All branches (outside R) to the old exit now point the new exit.
All regions whose exit is the old exit are also updated with the new exit
node.
It works like a charm.
2012 Jul 25
1
[LLVMdev] Question about an unusual jump instruction
Il 25/07/2012 10:07, Eli Friedman ha scritto:
> On Wed, Jul 25, 2012 at 12:48 AM, Michele Scandale
> <michele.scandale at gmail.com> wrote:
>> Dear all,
>>
>> I'm working on an exploratory backend on llvm. In the instruction set I'm using
>> I have an instruction (called DECJNZ) that decrements a register and, if the
>> decremented value is not
2012 Feb 06
0
[LLVMdev] Updating PHI for Instruction Domination?
I guess not since Value is a superclass of Instruction.
On Mon, Feb 6, 2012 at 10:36 AM, Ryan Taylor <ryta1203 at gmail.com> wrote:
>
>
> ---------- Forwarded message ----------
> From: Ryan Taylor <ryta1203 at gmail.com>
> Date: Mon, Feb 6, 2012 at 10:36 AM
> Subject: Re: [LLVMdev] Updating PHI for Instruction Domination?
> To: Eric Christopher <echristo at
2010 Aug 12
0
[LLVMdev] Questions about trip count
Dear guys,
I am having problems to obtain good information from the LoopInfo. I am
always getting a trip count of 0, even though I am clearly passing a loop
with a constant bound. I am using this pass below:
void testLoopInfo(const Function& F) const {
const LoopInfo *LI = &getAnalysis<LoopInfo>();
Function::const_iterator BB = F.begin(), E = F.end();
for (; BB !=
2012 Feb 06
1
[LLVMdev] Fwd: Updating PHI for Instruction Domination?
---------- Forwarded message ----------
From: Ryan Taylor <ryta1203 at gmail.com>
Date: Mon, Feb 6, 2012 at 10:36 AM
Subject: Re: [LLVMdev] Updating PHI for Instruction Domination?
To: Eric Christopher <echristo at apple.com>
Since I'm not sure which instructions I might want to replicate, would it
be possible to cast the Value from "PHINode::getIncomingValue" to
2012 Feb 06
1
[LLVMdev] Updating PHI for Instruction Domination?
You're creating a new path that doesn't include L. For all values defined in L and used outside of L, you need to determine the new reaching def. That's specific to your transformation and can't be automated. Once you do that, creating the phi in F is natural.
-Andy
On Feb 6, 2012, at 11:51 AM, Ryan Taylor <ryta1203 at gmail.com> wrote:
> I guess not since Value is a
2013 Jul 30
0
[LLVMdev] Eliminating PHI with Identical Inputs
Hi John,
On 30/07/13 16:12, John Criswell wrote:
> Dear All,
>
> Is there a pass (or set of passes) that will replace a phi whose input operands
> all compute the same value with an instruction that computes that value? In
> other words, something that will convert:
>
> define internal i32 @function(i32 %x) {
> ...
> bb1:
> %y = add %x, 10
> ...
> bb2:
> %z
2013 Jul 30
1
[LLVMdev] Eliminating PHI with Identical Inputs
On 7/30/13 9:46 AM, Duncan Sands wrote:
> Hi John,
>
> On 30/07/13 16:12, John Criswell wrote:
>> Dear All,
>>
>> Is there a pass (or set of passes) that will replace a phi whose
>> input operands
>> all compute the same value with an instruction that computes that
>> value? In
>> other words, something that will convert:
>>
>>
2015 Feb 25
0
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
On 02/25/2015 10:41 AM, Rafael Espíndola wrote:
>>> all the zero paths from entry to %a pass by %b.
>>
>> That is a graph-wise definition, sure.
>> So, this is an interesting definition, and maybe this is part of the source
>> of the problem.
>>
>> For SSA, at least GCC requires that both "definition block dominates use
>> block" (which
2010 Nov 17
1
[LLVMdev] Copy Instruction from one Basic block to another
I want to do the following:
suppose the program structure:
bb
/ \
bb1 bb2
\ /
bb3
2010 Feb 13
0
[LLVMdev] Line number and merged calls
On Feb 13, 2010, at 8:19 AM, nicolas geoffray wrote:
> Is this a bug with respect to accurate line number information with optimizations?
No. The way LLVM is designed, debug information is not allowed to interfere with code generation. In fact, if including debug information does change the generated code in any way, it is considered a bug.
> If not, is there a way to disable this
2013 Jul 30
2
[LLVMdev] Eliminating PHI with Identical Inputs
Dear All,
Is there a pass (or set of passes) that will replace a phi whose input
operands all compute the same value with an instruction that computes
that value? In other words, something that will convert:
define internal i32 @function(i32 %x) {
...
bb1:
%y = add %x, 10
...
bb2:
%z = add %x, 10
...
bb3:
%phi = [bb1, %y], [bb2, %z]
into
define internal i32 @function(i32 %x) {
...
bb1:
...
2012 Jul 25
0
[LLVMdev] Question about an unusual jump instruction
On Wed, Jul 25, 2012 at 12:48 AM, Michele Scandale
<michele.scandale at gmail.com> wrote:
> Dear all,
>
> I'm working on an exploratory backend on llvm. In the instruction set I'm using
> I have an instruction (called DECJNZ) that decrements a register and, if the
> decremented value is not zero, jumps (with a relative jump) to a given offset.
>
> I've
2012 Jul 25
2
[LLVMdev] Question about an unusual jump instruction
Dear all,
I'm working on an exploratory backend on llvm. In the instruction set I'm using
I have an instruction (called DECJNZ) that decrements a register and, if the
decremented value is not zero, jumps (with a relative jump) to a given offset.
I've described in tablegen this instruction as follow:
def DECJNZ : Instruction {
let Namespace = "MyTarget";
let
2014 May 22
4
[LLVMdev] RFC: Indexing of structs vs arrays in getelementpointer
Recently I posted a patch to migrate certain GEPs between basic blocks in cases where doing so would improve the ability of instcombine to merge into more complicated addressing mode (r209049 and r209065). After some build to failures it was rolled back. I now have a patch that no longer causes the regressions I was seeing, but it also no longer can optimize the case I was trying to optimize. As
2010 Jul 17
0
[LLVMdev] How to insert a basic block in an edge
Chayan Sarkar wrote:
> Hi all,
>
> Suppose in a CFG bb1 has two succesor bb3 and bb4, and bb3 has two
> predecessor bb1 and bb2. Now how can I insert a basic block between
> bb1 and bb3 that at the edge bb1-->bb3 .
>
> In general how can I insert a basic block on an edge?
Use llvm::SplitEdge in Transforms/Utils/BasicBlockUtils.h.
The technique is to create a new bb with a