Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] CaptureTracking.h?"
2016 Mar 22
3
A couple ideas for possible GSoC projects
If there are any students looking for ideas, here a couple of projects
you might consider.
p.s. Anyone know where in the repo the OpenProjects page is? I'd
expected it to be the docs/ folder of the LLVM repo, but it wasn't.
Transactional Memory Optimization
Intel recently introduced transactional memory support in hardware. This
project would consist of implementing optimizations
2016 Mar 22
0
A couple ideas for possible GSoC projects
Hi Philip,
> On Mar 22, 2016, at 4:43 PM, Philip Reames via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> If there are any students looking for ideas, here a couple of projects you might consider.
>
> p.s. Anyone know where in the repo the OpenProjects page is? I'd expected it to be the docs/ folder of the LLVM repo, but it wasn't.
Is it what you're
2019 Jan 04
2
Coupling between CaptureTracking and its users
Working on a downstream optimization which uses CaptureTracking (CT) I came
across a coupling problem. It looks like optimizations and analyses which use CT
often need to be in sync with CT implementation.
Analyzing the uses of the given pointer CT handles three kinds of uses:
* Simple non-capturing use. When one is encountered, CT just moves on.
* Non-capturing, but produces another value,
2014 Jun 17
2
[LLVMdev] Attaching range metadata to IntrinsicInst
Eh? How do you envision this?
-eric
On Tue, Jun 17, 2014 at 2:09 PM, Jingyue Wu <jingyue at google.com> wrote:
> Hi Nick,
>
> That makes sense. I think a main issue here is that the ranges of these PTX
> special registers (e.g., threadIdx.x) depend on -target-cpu which is only
> visible to clang and llc. Would you mind we specify "target cpu" in the IR
> similar
2014 Jun 17
4
[LLVMdev] Attaching range metadata to IntrinsicInst
On 17 June 2014 06:41, Eli Bendersky <eliben at google.com> wrote:
> On Tue, Jun 17, 2014 at 1:38 AM, Nick Lewycky <nicholas at mxc.ca> wrote:
>
>> Chandler Carruth wrote:
>>
>>> This seems fine to me, but I'd like to make sure it looks OK to Nick as
>>> well.
>>>
>>
>> I strongly prefer baking in knowledge about the
2014 Jun 17
3
[LLVMdev] Attaching range metadata to IntrinsicInst
On Tue, Jun 17, 2014 at 2:33 PM, Jingyue Wu <jingyue at google.com> wrote:
> Hi Eric,
>
> In the IR, besides "target datalayout" and "target triple", we have a
> special "target cpu" string which is set by the Clang front-end according to
> its -target-cpu flag. We also write a Module::getTargetCPU() method to
> retrieve this string from the
2014 Jun 16
3
[LLVMdev] Attaching range metadata to IntrinsicInst
Hi,
The range metadata can only be attached to LoadInst for now. I am
considering extending its usage to IntrinsicInst so that the frontend can
annotate the range of the return value of an intrinsic call. e.g.,
%a = call i32 @llvm.xxx(), !range !0
!0 = metadata !{ i32 0, i23 1024 }
The motivation behind this extension is some optimizations we are working
on for CUDA programs. Some special
2014 Jun 17
5
[LLVMdev] Attaching range metadata to IntrinsicInst
Chandler Carruth wrote:
> This seems fine to me, but I'd like to make sure it looks OK to Nick as
> well.
I strongly prefer baking in knowledge about the intrinsics themselves
into the passes if possible. Metadata will always be secondary.
Separately, should value tracking look use range metadata when it's
available? Absolutely.
I think it should apply to all CallInst not just
2019 Sep 19
2
Fixing some StackProtector issues
PR43308 describes a case where StackProtector fails to protect against
a fairly simple smash. This problem started after r363169, which
removed StackProtector's own analysis function HasAddressTaken, and
used CaptureTracking's PointerMayBeCaptured instead. The problem here
is that "pointer is captured" and "pointer could be used to smash the
stack" are not equivalent
2020 Nov 18
2
[AssumeBundles] ValueTracking cannot use alignment assumptions?
Hello,
As I can see, recently LLVM switched to using assume bundles to encode alignment information: https://reviews.llvm.org/rG78de7297abe2e8fa782682168989c70e3cb34a5c
However, it seems that the ValueTracking cannot understand the new format. As an example, consider compilation of the following reproducer with clang-11 (old assume format) and clang-trunk (assume bundles):
#include
2017 Dec 14
2
[RFC] Add TargetTransformInfo::isAllocaPtrValueNonZero and let ValueTracking depend on TargetTransformInfo
Some optimizations depend on whether alloca instruction always has non-zero value. Currently, this checking is done by isKnownNonZero() in ValueTracking, and it assumes alloca in address space 0 always has non-zero value but alloca in non-zero address spaces does not always have non-zero value.
However, this assumption is incorrect for certain targets. For example, amdgcn---amdgiz target has
2019 Sep 10
2
Question on llvm.mem* intrinsics
Hi there lowering experts,
Can the llvm.mem* intrinsics ever turn into a library call? Or do
they invariably turn into inline code?
This comes up because there was a patch to StackProtector to use
CaptureTracking instead of a home-grown analysis, which changes
the treatment of calls to intrinsics. (The old code treated them
as normal calls, the new code decides intrinsics can never capture.)
2017 Dec 14
3
[RFC] Add TargetTransformInfo::isAllocaPtrValueNonZero and let ValueTracking depend on TargetTransformInfo
Hal,
Thanks for your suggestion. I think that makes sense.
Currently, non-zero alloca address space is already represented by data layout, e.g., the last component of the data layout of amdgcn---amdgiz target is -A5, which means alloca is in address space 5. How about adding a letter z to -A5 to indicate alloca may have zero value? i.e. -A5 means alloca is in address space 5 and always has
2011 Feb 10
1
[LLVMdev] PR9112
Hello,
This simple patch fixes PR9112:
Index: lib/Analysis/ValueTracking.cpp
===================================================================
--- lib/Analysis/ValueTracking.cpp (revision 125281)
+++ lib/Analysis/ValueTracking.cpp (working copy)
@@ -593,6 +593,8 @@
// Otherwise take the unions of the known bit sets of the operands,
// taking conservative care to avoid
2016 Sep 20
2
Inferring nsw/nuw flags for increment/decrement based on relational comparisons
Hi everyone,
I posted some questions related to implementing inference of nsw/nuw
flags based on known icmp results to Bug 30428 (
https://llvm.org/bugs/show_bug.cgi?id=30428 ) and it was recommended
that I engage a wider audience by coming here. The minimal context is
the following, please see the bug report for more detail:
> 1. If (X s< Y), then both X + 1 and Y - 1 are nsw.
> 2.
2009 Jan 20
4
[LLVMdev] cygwin build patch
>> I realise that the DataTypes.h.in part might be controversial. Also,
>> there's probably a better place to put it, but I'm not sure where.
>
> I didn't apply this part. What problems does it cause to not have
> this? Can we fix uses of max and min?
I get these errors in lib:
.../lib/Analysis/ValueTracking.cpp:162: error: no matching function
for call to
2017 Mar 15
2
Speculative execution of FP divide Instructions - Call-Graph Simplify
Hi all,
I came across an issue caused by the Call-Graph Simplify Pass. Here is a a
small repro:
```
define double @foo(double %a1, double %a2, double %a3) #0 {
entry:
%a_mul = fmul double %a1, %a2
%a_cmp = fcmp ogt double %a3, %a_mul
br i1 %a_cmp, label %a.then, label %a.end
a.then:
%a_div = fdiv double %a_mul, %a3
br label %a.end
a.end:
%a_factor = phi double [ %a_div, %a.then ],
2017 Mar 15
3
Speculative execution of FP divide Instructions - Call-Graph Simplify
[+current llvm-dev address]
On 03/15/2017 09:23 AM, Hal Finkel wrote:
> Hi Samuel,
>
> What are you taking about? ;)
>
> The only way to get a SIGFPE from a floating-point division by zero is
> to modify the floating-point environment to enable those exceptions.
> We don't support that (*). In the default (supported) environment,
> floating point division is well
2015 Feb 09
2
[LLVMdev] DataLayout missing in isDereferenceablePointer()
Eric Christopher wrote:
> How are you trying to call it? Do you have a DataLayout?
In test/Analysis/ValueTracking/memory-dereferenceable.ll, just change
byval to dereferenceable(8), and %dparam won't match (see
lib/IR/Value.cpp:521 for the logic that is supposed to fire). How do I
get it to pass? I tried introducing a target-triple and
target-datalayout, but it didn't help.
2017 Mar 15
2
Speculative execution of FP divide Instructions - Call-Graph Simplify
It’s true, I am working on this. I have committed the initial patch to add constrained intrinsics for the basic FP operations. This has the desired effect of preventing optimizations that would violate strict FP semantics with regard to rounding mode and exception status, but it also prevents many safe optimizations. Later this year I’ll be going through the code base and trying to teach