Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Disable memset synthesization"
2013 Jul 30
0
[LLVMdev] Disable memset synthesization
On 7/30/2013 12:55 PM, Bin Tzeng wrote:
> Hi all,
>
> LLVM is smart that it can synthesize llvm.memset, llvm.memcpy etc. from
> loops, which can be lowered into calls to memset, memcpy and so on. Is
> there an option that can disable this optimization? For some cases, I do
> not want the code to depend on libc.
You can use -fno-builtin, if that suits your needs.
-K
--
2013 Nov 13
3
[LLVMdev] dominator, post-dominator and memory leak
Hi Henrique,
Thanks for the quick reply!
On Tue, Nov 12, 2013 at 9:13 PM, Henrique Santos <
henrique.nazare.santos at gmail.com> wrote:
> PRE normally uses a latest placement algorithm to do something of the sort.
> I don't know about GVN/PRE, but older version of PRE might have it.
> Just placing the calls to free at the predecessors (dominated by BB12) of
> the dominance
2013 Nov 15
2
[LLVMdev] dominator, post-dominator and memory leak
Hi Henrique,
I have tried using -mergereturn and inserting a free into the predecessors
of dominance frontier of malloc block and it caused double free. It is
possible for multiple free's to be inserted on the path from malloc to an
exit. For example, in the following CFG:
BB10 (malloc)
/ \
BB11 BB12
... / \ / \
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
>
> It seems that placing the calls to free at the predecessors of dominance
> frontier is inadequate. It is possible that there are exit blocks that are
> dominated by BB12 (calls to malloc). I guess we can also insert calls to
> free at these exit blocks too.
That crossed my mind a few minutes later. : )
If you're interested, PRE.cpp existed last at r25315. It calculates the
2013 Nov 13
2
[LLVMdev] dominator, post-dominator and memory leak
Thanks! I will try that and see whether it works.
On Wed, Nov 13, 2013 at 5:01 AM, Henrique Santos <
henrique.nazare.santos at gmail.com> wrote:
> It seems that placing the calls to free at the predecessors of dominance
>> frontier is inadequate. It is possible that there are exit blocks that are
>> dominated by BB12 (calls to malloc). I guess we can also insert calls to
2013 Nov 15
0
[LLVMdev] dominator, post-dominator and memory leak
Try breaking the critical edges (-break-crit-edges).
This way, a new block will be created between BB13 and BB11 (call this
BB11.break) and BB15 and BB12 (call this BB12.break).
The predecessors of the dominance frontier will, thus, be BB11.break,
BB12.break, and BB14.
When we enter through a block with a call to malloc(), we will end up in
one of the blocks in the dominance frontier (kind of).
2013 Jun 20
2
[LLVMdev] Error in the example of sext instruction in reference manual
Hi all,
There might be a simple error in the LLVM reference manual. The example for
sext instruction:
%X = sext i8 -1 to i16 ; yields i16 :65535
%X should yield i16: -1, as opposed to 65535.
Here is the simple patch (also attached):
Index: docs/LangRef.rst
===================================================================
--- docs/LangRef.rst (revision 184496)
+++ docs/LangRef.rst
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
Bill,
Just in case this is relevant for you: If you're working with C++ code, or otherwise have any functions that might throw exceptions, you might also need to catch those exceptions in order to free the allocated memory. This will involve looking for calls to functions that mayThrow(), changing their calls to invokes, and freeing the memory before resuming the unwinding.
-Hal
-----
2013 Nov 13
2
[LLVMdev] dominator, post-dominator and memory leak
Hi all,
I have been writing a pass to heapify some alloca's (it is
pessimistization, not optimization). For example, in the following control
flow graph, there is a call to malloc inserted in block BB12. In order to
avoid memory leak, free's are needed. The free cannot be inserted in BB23
because BB23 is not dominated by BB12. There are two ways to go I can think
of here. One way is to
2013 Jun 21
0
[LLVMdev] Error in the example of sext instruction in reference manual
On Jun 20, 2013, at 4:39 PM, Bin Tzeng <bintzeng at gmail.com> wrote:
> Hi all,
>
> There might be a simple error in the LLVM reference manual. The example for sext instruction:
>
> %X = sext i8 -1 to i16 ; yields i16 :65535
>
> %X should yield i16: -1, as opposed to 65535.
> Here is the simple patch (also attached):
These are the same value.
-Chris
>
2013 Aug 07
1
[LLVMdev] DataFlowSanitizer design discussion
15.06.2013, 00:53, "Bin Tzeng" <bintzeng at gmail.com>:
> It is interesting. I can see some use cases with such a tool. To me, source-level implementation
> is not as accurate as binary translation. For instance, it is hard to check the taint for return addresses
> since there is no concept of return instructions on source level.
Well, on many architectures there is no
2013 Nov 13
0
[LLVMdev] dominator, post-dominator and memory leak
PRE normally uses a latest placement algorithm to do something of the sort.
I don't know about GVN/PRE, but older version of PRE might have it.
Just placing the calls to free at the predecessors (dominated by BB12) of
the dominance frontier of BB12 seems to work, however. Is there anything
wrong with this?
H.
On Tue, Nov 12, 2013 at 11:30 PM, Bin Tzeng <bintzeng at gmail.com> wrote:
2013 Jun 14
0
[LLVMdev] DataFlowSanitizer design discussion
It is interesting. I can see some use cases with such a tool. To me,
source-level implementation
is not as accurate as binary translation. For instance, it is hard to check
the taint for return addresses
since there is no concept of return instructions on source level. The stack
does not appear until later.
For a security mechanism, return addresses need to be protected.
On Fri, Jun 14, 2013 at
2013 Jun 14
4
[LLVMdev] DataFlowSanitizer design discussion
On Thu, Jun 13, 2013 at 03:13:37PM -0700, Sean Silva wrote:
> Could you maybe give some example use cases?
A use case I am interested in is to take a large application and use
this instrumentation as a tool to help monitor how data flows from its
inputs (sources) to its outputs (sinks). This has applications from
a privacy/security perspective in that one can audit how a sensitive
data item
2013 Jun 21
2
[LLVMdev] Error in the example of sext instruction in reference manual
Thanks for the reply. Just for a little more clarity, is i16, i32...
signed, unsigned, or just a bit pattern?
On Thu, Jun 20, 2013 at 9:17 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Jun 20, 2013, at 4:39 PM, Bin Tzeng <bintzeng at gmail.com> wrote:
>
> > Hi all,
> >
> > There might be a simple error in the LLVM reference manual. The example
2011 Sep 22
3
[LLVMdev] Patch to synthesize x86 hadd instructions; need help with the tablegen bits
Hi Bruno,
> Some comments:
>
> + // Try to synthesize horizontal adds from adds of shuffles.
> + if (((Subtarget->hasSSE3()&& (VT == MVT::v4f32 || VT == MVT::v2f64)) ||
> + (Subtarget->hasAVX()&& (VT == MVT::v8f32 || VT == MVT::v4f64)))&&
> + isHorizontalBinOp(LHS, RHS, true))
>
> 1) You probably want to do something like:
>
2010 Feb 14
2
Estimated Standard Error for Theta in zeroinfl()
Dear R Users,
When using zeroinfl() function to fit a Zero-Inflated Negative Binomial (ZINB) model to a dataset, the summary() gives an estimate of log(theta) and its standard error, z-value and Pr(>|z|) for the count component. Additionally, it also provided an estimate of Theta, which I believe is the exp(estimate of log(theta)).
However, if I would like to have an standard error of Theta
2011 Sep 21
2
[LLVMdev] Patch to synthesize x86 hadd instructions; need help with the tablegen bits
This patch synthesizes haddps/haddpd/hsubps/hsubpd instructions from floating
point additions and subtractions of appropriate vector shuffles. To do this I
introduced new x86 FHADD and FHSUB opcodes. These need to be wired up somehow
in the .td file to the appropriate instructions. Since I have no idea how
tablegen works I just hacked it in horribly. It works, but breaks support for
the hadd
2011 Sep 22
0
[LLVMdev] Patch to synthesize x86 hadd instructions; need help with the tablegen bits
The output of the avx-hadd program is
3 11 7 15
Preston
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Duncan Sands
Sent: Thursday, September 22, 2011 3:14 PM
To: Bruno Cardoso Lopes
Cc: LLVMdev
Subject: Re: [LLVMdev] Patch to synthesize x86 hadd instructions; need help with the tablegen bits
Hi Bruno,
> Some comments:
2015 Oct 16
2
question about llvm partial unrolling/runtime unrolling
Hi Hal,
I did
opt.exe -S -debug -loop-unroll -unroll-runtime=true -unroll-count=4
csShader.ll
and it prints out:
Args: opt.exe -S -debug -loop-unroll -unroll-runtime=true -unroll-count=4
csShader.ll
Loop Unroll: F[build_cs_5_0] Loop %loop_entry
Loop Size = 82
partially unrolling with count: 1
Thanks,
Frances
On Thu, Oct 15, 2015 at 9:35 PM, Hal Finkel <hfinkel at anl.gov>