Displaying 20 results from an estimated 800 matches similar to: "[LLVMdev] Erasing dead blocks"
2012 Jul 09
2
[LLVMdev] problem with visitBranchInst()
hi,
my code inherits InstVisitor class, and visitBranchInst() method.
however, i notice that inside the virtual method
visitBranchInst(BranchInst &I), on the LLVM instruction like:
br i1 %1, label %2, label %3
my code doesnt return expected info. for ex, the code
I.getCondition->getName().str()
would return empty string. and at the same time, the code
I.getSuccessor(0)->getName()
2010 Jun 04
5
[LLVMdev] Inserting a function call into bitcode
Hi All,
I am trying to write code for simple instrumentation. What I want to do is
to insert a call to an external function for result of each conditional
branch instruction. This external function simply print true or false based
on the result of condition. The modified code is then written into new file.
However when I try to link that file with another bitcode file (containing
external
2012 Nov 29
2
[LLVMdev] [cfe-dev] UB in TypeLoc casting
Moving to LLVM dev to discuss the possibility of extending the cast
infrastructure to handle this.
On Tue, Nov 20, 2012 at 5:51 PM, John McCall <rjmccall at apple.com> wrote:
> On Nov 18, 2012, at 5:05 PM, David Blaikie <dblaikie at gmail.com> wrote:
>> TypeLoc casting looks bogus.
>>
>> TypeLoc derived types return true from classof when the dynamic type
>>
2013 May 13
3
[LLVMdev] Q: When is a boolean not a boolean?
A: When the types are created in different contexts.
I've been running into a module validation error related to phi nodes
produced by the GVN pass, where the types of the incoming values aren't the
same instance of IntegerType i1.
I'm not certain I've found the root cause of the problem yet, it's probably
due to my handling of LLVMContext & Module life cycles, and this
2007 Jan 22
3
routing patches seem to break output nat
Hi
We have applied the routing patches from
http://www.ssi.bg/%7Eja/#routes. To 2.6.15 this seems to have broken our
output natting. Has anyone else experienced this or any advice on how to
fix. Is this working on the newer kernel i.e. 2.6.19 ? Any help would be
appreciated.
--
Tim Haak
email: tim@haak.co.uk
cel: 0837787100
First love is only a little foolishness and a lot of curiosity,
2004 Aug 27
1
[LLVMdev] Help getting condition of branch instructions in pass
Hi, this is a bit of a newbie question:
I am trying to discover, given a block with a conditional and its
successors, which condition (T/F) each successor applies to.
There's almost identical code in CFGPrinter.cpp, but where it gets
called in GraphWriter.h, the child_iterator type is a pretty hairy
thing, so I still don't quite understand how to get one from a
BasicBlock in my own
2012 Sep 26
9
[LLVMdev] [PATCH / PROPOSAL] bitcode encoding that is ~15% smaller for large bitcode files...
Hi all,
I've been looking into how to make llvm bitcode files smaller. There is
one simple change that appears to shrink linked bitcode files by about 15%.
See this spreadsheet for some rough data:
https://docs.google.com/spreadsheet/ccc?key=0AjRrJHQc4_bddEtJdjdIek5fMDdIdFFIZldZXzdWa0E
The change is in how operand ids are encoded in bitcode files. Rather than
use an "absolute
2013 Nov 19
3
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
Just moving this branch of the thread out of the review because I don't
want to derail the review thread...
Kostya - why are these two cases not optimization bugs in general? (why do
they only affect sanitizers?)
On Mon, Nov 18, 2013 at 8:37 PM, Kostya Serebryany <kcc at google.com> wrote:
> And we've been just informed by the mozilla folks about yet another case
> of
2012 Sep 26
0
[LLVMdev] [PATCH / PROPOSAL] bitcode encoding that is ~15% smaller for large bitcode files...
Hi Jan,
> I've been looking into how to make llvm bitcode files smaller. There is one
> simple change that appears to shrink linked bitcode files by about 15%. See
> this spreadsheet for some rough data:
>
> https://docs.google.com/spreadsheet/ccc?key=0AjRrJHQc4_bddEtJdjdIek5fMDdIdFFIZldZXzdWa0E
the improvement is wonderful!
...
> In any case, the patch is attached if
2013 May 13
0
[LLVMdev] Q: When is a boolean not a boolean?
Jeremy Lakeman wrote:
> A: When the types are created in different contexts.
>
> I've been running into a module validation error related to phi nodes
> produced by the GVN pass, where the types of the incoming values aren't
> the same instance of IntegerType i1.
>
> I'm not certain I've found the root cause of the problem yet, it's
> probably due to my
2010 Aug 06
2
[LLVMdev] PR5373
Hello again :)
It's been some time since I sent you last patch, but here I'm again. I send the patch for PR5373.
Regards
--
Jakub Staszak
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr5373.patch
Type: application/octet-stream
Size: 5913 bytes
Desc: not available
URL:
2010 Feb 08
1
[LLVMdev] converting an unconditional into a conditional branch
Hi,
I'm learning to use the llvm API, but I got a question for which I haven't
found a good answer yet:
What is the best way to turn an unconditional branch into a conditional
branch? All I want to do is add two more operands, a successor and a
condition. But no matter how I try to do this any one of
setCondition()/setOperand()/setSuccessor() causes an assertion like these:
Cannot
2013 Nov 19
0
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
On Tue, Nov 19, 2013 at 8:25 PM, David Blaikie <dblaikie at gmail.com> wrote:
> Just moving this branch of the thread out of the review because I don't
> want to derail the review thread...
>
> Kostya - why are these two cases not optimization bugs in general? (why do
> they only affect sanitizers?)
>
The recent case from mozilla (
2013 Nov 19
3
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
The root cause of those issues is the fact that sanitizers verify
C++-level semantics with LLVM IR level instrumentation. For example,
speculative loads are OK in IR if it can be proved that the load won't
trap, but in C++ it would be a data race.
On Tue, Nov 19, 2013 at 8:38 PM, Kostya Serebryany <kcc at google.com> wrote:
>
>
>
> On Tue, Nov 19, 2013 at 8:25 PM, David
2009 Nov 10
2
[LLVMdev] Bugfix: SCCP
The SCCP pass was failing an assertion that I traced back to
SCCPSolver::visitExtractValueInst. getStructValueState was used on the
aggregate operand even if it had no structure type. I added a check to
use getStructValueState for structs and getValueState for other
operands.
This behavior was introduced in r85793. Please note that I'm not sure
whether my changes correctly address this
2013 Nov 19
5
[LLVMdev] Curiosity about transform changes under Sanitizers (Was: [PATCH] Disable branch folding with MemorySanitizer)
On Tue, Nov 19, 2013 at 9:05 PM, Kuperstein, Michael M <
michael.m.kuperstein at intel.com> wrote:
> My $0.02 - I'm not sure the transformation introduces a data race.
>
> To the best of my understanding, the point of the C++11/C11 memory model
> is to allow a wide array of compiler transformations - including
> speculative loads - for non-atomic variables.
> I believe
2010 Oct 28
2
[LLVMdev] global optimizer precision
Hi all,
I had a look at the interprocedural optimizer. In my opinion the
routine 'GlobalOpt::ProcessInternalGlobal' is a little bit to
conservative. It removes global variables if the only routine using
this variable is main. Typically this condition is valid only for very
few global variables.
Here is a code snippet containing the test before the transformation:
file:
2010 Aug 06
0
[LLVMdev] PR5373
The last bit here
+ if (LoopExitBB) {
+ // It is possible that for both successors
isTrivialLoopExitBlock()
+ // returns different exit blocks. It means that the loop
isn't trivial,
+ // just quit then.
+ if (LoopExitBB != LoopExitBB2)
+ return false;
+ } else if (Val) {
+ // if LoopExitBB == LoopExitBB2 pick the first one (true).
+
2010 Aug 06
2
[LLVMdev] PR5373
On Aug 6, 2010, at 11:47 AM, Dale Johannesen wrote:
> The last bit here
>
> + if (LoopExitBB) {
> + // It is possible that for both successors isTrivialLoopExitBlock()
> + // returns different exit blocks. It means that the loop isn't trivial,
> + // just quit then.
> + if (LoopExitBB != LoopExitBB2)
> + return false;
> +
2010 Apr 17
2
[LLVMdev] SCEV expression for ICmpInst
Hi,
i am playing the ScalarEvolution these days. i found the the ScalarEvolution
will simply return a SCEVUnknow for a ICmpInst, so i think maybe great to
add a new kind of SCEV to the ScalarEvolution framework.
for example, if i run ScalarEvolution on the bc file generate from the
following C source file:
int f(int a, int b, int c, int d) {
return (2 * a + 5 * c + 2) > (4 * d - 3*b