Displaying 20 results from an estimated 3515 matches for "scalar".
2006 May 03
1
[LLVMdev] Patch for transform dependencies
...s been tested, but not extensively. PassManager doesn't
complain, and
the result of a test pass that requires all these (except for
LowerAllocations) together
works fine.
Domagoj
***************************** PATCH BEGIN
**********************************************
Index: ./lib/Transforms/Scalar/LowerSwitch.cpp
===================================================================
RCS file: /var/cvs/llvm/llvm/lib/Transforms/Scalar/LowerSwitch.cpp,v
retrieving revision 1.19
diff -u -p -r1.19 LowerSwitch.cpp
--- ./lib/Transforms/Scalar/LowerSwitch.cpp 2 May 2006 04:24:36
-0000 1.19
++...
2016 Nov 01
2
Ambiguity in !tbaa metadata?
I was trying to add some stronger assertions in the verifier around
!tbaa metadata when I ran into an ambiguity: I think the encoding of
the metadata nodes are such that a given node can be interpreted as
either a struct type node or a scalar tbaa node. I'd like a sanity
check before I try to fix or work around this.
Consider some IR that I got from running clang over a small C++
program:
```
define void @foo() {
...
load ..., !tbaa !2
load ..., !tbaa !7
load ..., !tbaa !10
...
}
!2 = !{!3, !5, i64 0}
!3 = !{!&quo...
2015 Aug 19
3
Code owner for the scalarizer
We should find a code owner for the scalarizer
(lib/Transforms/Scalar/Scalarizer.cpp).
I nominate Richard Sandiford, who added it in r195471.
Let me know what you think.
Thanks,
Hans
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 15
4
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
On Wed, Jul 15, 2015 at 1:10 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> IMHO, This doesn't make a lot of sense to turn off this part on it's own.
> I would just use the enable-pre flag to turn off scalar PRE, as it
> will cause the same issue in other cases as well.
> Is there some reason you aren't just doing that?
> I suspect if this is a performance win, that would be as well.
>
Ugh, actually, it should be a win with the following change:
diff --git a/lib/Transforms/Scalar/GVN...
2013 Nov 13
2
[LLVMdev] [PATCH] Add a Scalarize pass
...s OpenCL) contain vector instructions. The LLVM pass manager configuration (pass manager builder) is designed for C/C++ compilers, not for DSLs. People who use LLVM for other compilation flows (such as GPU compilers, other languages) create their own optimization pipe. I am in favor of adding the scalarizer pass so that people who build LLVM-based JITs and compilers could use it. However, I am against adding this pass by default to the pass manager builder. I understand that there are cases where scalarizing early in the pipeline is better, but I don’t think that its worth the added complexity....
2016 Dec 13
4
Enabling scalarized conditional stores in the loop vectorizer
...the vectorizer's modeling of the
conditional stores is good. We could potentially improve it by using
profile information if available. But I'm not sure of the quality of the
individual TTI implementations other than AArch64. I assume they are
adequate.
Since the conditional stores remain scalar in the vector loop, their cost
is essentially the same as it is in the scalar loop (aside from
scalarization overhead, which we account for). So when we compare the cost
of the scalar and vector loops when deciding to vectorize, we're basically
comparing the cost of everything else.
-- Matt
O...
2016 Dec 13
0
Enabling scalarized conditional stores in the loop vectorizer
I added this feature for libquantum (http://llvm.org/viewvc/llvm-project?view=revision&revision=200270) waiting for an update to the cost model modeling the scalarization of stores which you recently added.
Assuming no serious regressions this SGTM.
> On Dec 13, 2016, at 5:41 AM, Matthew Simpson <mssimpso at codeaurora.org> wrote:
>
> Hi Michael,
>
> Thanks for testing this on your benchmarks and target. I think the results will help...
2011 Jul 27
3
[LLVMdev] scalar evolution to determine access functions in arays
...functions on the loop iterators used as array indices?
For example:
for i = 0, N
for j = 0, M
A[2*i + j - 10] = ...
Can I obtain that this instruction A[2*i + j - 10]= .. always accesses memory using a function f(i,j) = 2*i + j - 10 + base_address_of_A
If I run the scalar evolution pass on this code I obtain:
%arrayidx = getelementptr inbounds [200 x i32]* @main.A, i32 0, i64 %idxprom
--> ((4 * (sext i32 (-10 + (2 * %tmp6) + %tmp7) to i64)) + @main.A)
Could you please offer an insight on how can I obtain the function from the internals of the scalar...
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 17
2
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
That should be literally impossible, which makes me think something
was tested wrong
The second patch i posted disables scalar pre (assuming you use
-disable-pre) but not load pre.
Since the patch you reverted touched only scalar pre, disabling scalar
pre should *also* do the same thing.
On Thu, Jul 16, 2015 at 5:43 PM, Lawrence <lawrence at codeaurora.org> wrote:
> Hi, Daniel:
>
> Something interesting,...
2010 Aug 19
2
[LLVMdev] sret on scalars
I am needing to return i128 as a shadow return due to abi issues on
alpha. The problem I am running into is the code for doing that with
scalars (currently only used for vectors, as far as I can tell) sets
the sret on the parameter. If I just go this path, then I am setting
sret on an integer pointer, which verify objects too. LangRef doesn't
say scalars are allowed to have sret set, but sret is used for
vectors.
So my question is:...
2009 Jun 24
2
[LLVMdev] Handling SMax(N, N - constInt) in Scalar Evolution pass
...> > safe. For example,
> >
> > int foo(int s) {
> > int * p = malloc(s * sizeof int);
> > ...
> > int q = p[s - 2];
> > }
> >
> > then the access of p[s - 2] always stays in bound.
> >
> > I implemented a prototype using the Scalar Evolution pass. Here are the
> > pseudo-code of the implementation:
> >
> > const SCEV * offset = SE->getMinusSCEV(SE->getSCEV(GEP), GEPBase);
> > const SCEV * bounds = SE->getSCEV(objSize);
> >
> > if (SE->getSMaxExpr(offset, bounds) == boun...
2016 Dec 13
1
Enabling scalarized conditional stores in the loop vectorizer
...t;Arnold Schwaighofer via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Matthew Simpson" <mssimpso at codeaurora.org>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Tuesday, December 13, 2016 9:17:08 AM
> Subject: Re: [llvm-dev] Enabling scalarized conditional stores in the loop vectorizer
>
> I added this feature for libquantum
> (http://llvm.org/viewvc/llvm-project?view=revision&revision=200270)
> waiting for an update to the cost model modeling the scalarization
> of stores which you recently added.
>
> Assum...
2011 Aug 03
2
[LLVMdev] scalar evolution to determine access functions in arays
Hello Tobi,
You are right, we need to run some other passes before running the scalar evolution pass. The sequence that I run for this example is -O3 -loop-simplify -reg2mem. This is why I did not obtain the expressions depending on the loop indices. So I removed the reg2mem pass and scalar evolution computes the correct functions.
However, I need to run the reg2mem pass (or any...
2012 Apr 04
1
[LLVMdev] scalar replacement of aggregates slower?
I just upgraded our optimizer to LLVM 3.0 from 2.8 and noticed that the
scalar replacement of aggregates pass takes a lot longer for some code.
Has there been a performance regression in this pass, or does it do more
work?
LLVM 3.0:
Total Execution Time: 1.0600 seconds (1.0526 wall clock)
---User Time--- --System Time-- --User+System-- ---Wall
Time--- ---...
2009 Jun 24
1
[LLVMdev] Handling SMax(N, N - constInt) in Scalar Evolution pass
Hi all,
I'm working on a project which tries to prove an access to an array is
safe. For example,
int foo(int s) {
int * p = malloc(s * sizeof int);
...
int q = p[s - 2];
}
then the access of p[s - 2] always stays in bound.
I implemented a prototype using the Scalar Evolution pass. Here are the
pseudo-code of the implementation:
const SCEV * offset = SE->getMinusSCEV(SE->getSCEV(GEP), GEPBase);
const SCEV * bounds = SE->getSCEV(objSize);
if (SE->getSMaxExpr(offset, bounds) == bounds) {
++safeGEPs;
}
But it turns out that SCEVSMaxExp...
2017 Jul 16
4
PartialAlias: different start addresses
...return LocA.Size == LocB.Size ? MustAlias : PartialAlias;
> >>
> >>
> >> I grepped for clients of MustAlias:
> >> ~/llvm/lib/Transforms $ grep -Rl MustAlias .
> >> ./ObjCARC/ObjCARCOpts.cpp
> >> ./ObjCARC/ProvenanceAnalysis.cpp
> >> ./Scalar/DeadStoreElimination.cpp
> >> ./Scalar/GVN.cpp
> >> ./Scalar/LICM.cpp
> >> ./Scalar/LoopVersioningLICM.cpp
> >> ./Scalar/MemCpyOptimizer.cpp
> >> ./Scalar/MergedLoadStoreMotion.cpp
> >> ./Scalar/NewGVN.cpp
> >> ./Utils/VNCoercion.cpp
&g...
2013 Nov 15
2
[LLVMdev] [PATCH] Add a Scalarize pass
...<rsandifo at linux.vnet.ibm.com> wrote:
>> Richard Sandiford <rsandifo at linux.vnet.ibm.com> writes:
>>> Are you worried that adding it to PMB will increase compile time?
>>> The pass exits very early for any target that doesn't opt-in to doing
>>> scalarisation at the IR level, without even looking at the function.
>>
>> As an alternative, adding Scalarizer and InstCombine passes to
>> SystemZPassConfig::addIRPasses() would probably give me most of the
>> benefit without affecting the PMB. Scalarizer itself would then not...
2016 Dec 13
0
Enabling scalarized conditional stores in the loop vectorizer
...e cost model is known to be good enough, so it's clearly
beneficial?
(+Arnold, who probably knows why this is disabled by default. :-) )
Thanks,
Michael
On Mon, Dec 12, 2016 at 2:52 PM, Matthew Simpson <mssimpso at codeaurora.org>
wrote:
> Hi,
>
> I'd like to enable the scalarized conditional stores feature in the loop
> vectorizer (-enable-cond-stores-vec=true). The feature allows us to
> vectorize loops containing conditional stores that must be scalarized and
> predicated in the vectorized loop.
>
> Note that this flag does not affect the decision to ge...
2013 Nov 14
2
[LLVMdev] [PATCH] Add a Scalarize pass
Richard Sandiford <rsandifo at linux.vnet.ibm.com> writes:
> Are you worried that adding it to PMB will increase compile time?
> The pass exits very early for any target that doesn't opt-in to doing
> scalarisation at the IR level, without even looking at the function.
As an alternative, adding Scalarizer and InstCombine passes to
SystemZPassConfig::addIRPasses() would probably give me most of the
benefit without affecting the PMB. Scalarizer itself would then not
test TargetTransformInfo at all, at...
2009 Jun 05
5
[LLVMdev] SSE Scalar Convert Intrinsics
I have a question about the SSE scalar convert intrinsics.
cvtsd2si is defined thusly:
def int_x86_sse2_cvtsd2si64 : GCCBuiltin<"__builtin_ia32_cvtsd2si64">,
Intrinsic<[llvm_i64_ty, llvm_v2f64_ty], [IntrNoMem]>;
This matches the signature of the GCC intrinsic. The fact that the GCC
intrinsic has...