Displaying 20 results from an estimated 76 matches for "gcse".
Did you mean:
cse
2008 Sep 03
0
[LLVMdev] Merge-Cha-Cha
.... -I../../gcc -I../../gcc/. -I../../gcc/../include
-I../../gcc/../libcpp/include -I../../gcc/../libdecnumber
-I../libdecnumber -I/home/regehr/llvm/include -I/home/regehr/llvm/include
-DENABLE_LLVM -I/home/regehr/llvm/include -D_DEBUG -D_GNU_SOURCE
-D__STDC_LIMIT_MACROS ../../gcc/postreload-gcse.c -o postreload-gcse.o
../../gcc/postreload-gcse.c: In function
eliminate_partially_redundant_load:
../../gcc/postreload-gcse.c:1123: error:
flag_darwin_rtl_pre_ignore_critical_edges undeclared (first use in this
function)
../../gcc/postreload-gcse.c:1123: error: (Each undeclared identifier is...
2008 Sep 03
3
[LLVMdev] Merge-Cha-Cha
As you all have undoubtedly noticed, I recently did Yet Another Merge
to Apple's GCC top-of-tree. This merge was prompted by several
important fixes in the "blocks" implementation. There are still many
testcases that need to be moved over, but those can come at our
leisure. I compiled both the "Apple way" and the "FSF way". It also
passed the tests in
2005 Feb 22
3
[LLVMdev] Area for improvement
...h
> reduction be performed. getelementptr needs to be broken down into
> its constituent operations at some point.
Jeff,
This is exactly right -- any multi-dimensional array indexing
operations need to decomposed into a sequence of single index
operations so that they can be exposed to GCSE and LICM. This
transformation obscures the indexing behavior of the code, so the right
place to do this is within each back-end, on LLVM code just before
instruction selection.
There is a pass called DecomposeMultiDimRefs (which seems to have been
incorrectly moved to lib/Target/SparcV9/) whi...
2006 Oct 13
2
[LLVMdev] opt usage?
I'm new to the LLVM, so please forgive what might be a silly question.
I'd like to use the opt bytecode-to-bytecode optimizer, but when I try
running it to do, for example, dead code elimination (-dce) or global
common subexpression elimination (-gcse), nothing much seems to happen:
opt -gcse -dce -o bar-opt.bc bar.bc
llvm2cpp -o bar-opt.cpp bar-opt.bc
diff bar.bc bar-opt.bc
40c40
< Module* mod = new Module("bar.bc");
---
< Module* mod = new Module("bar-opt.bc");...
2005 Feb 22
0
[LLVMdev] Area for improvement
...lementptr needs to be
>> broken down into its constituent operations at some point.
>
>
> Jeff,
>
> This is exactly right -- any multi-dimensional array indexing
> operations need to decomposed into a sequence of single index
> operations so that they can be exposed to GCSE and LICM. This
> transformation obscures the indexing behavior of the code, so the
> right place to do this is within each back-end, on LLVM code just
> before instruction selection.
>
> There is a pass called DecomposeMultiDimRefs (which seems to have been
> incorrectly move...
2006 May 10
0
[LLVMdev] SCCP
...but here are some comments. :)
1. The SCCP pass only does really simple propagation of loads: in
particular, a load will only be "constant folded" if it is a load from
a constant global. This isn't, so SCCP won't touch it.
2. SCCP isn't propagating foo[0], -load-vn -gcse does. In particular,
GCSE sees a store to a memory location, followed by a load from the
same location (without an intervening, potentially aliasing, store).
It forward propagates the stored value to the load (in this case, the
constant), eliminating the load.
3. It would be straig...
2005 Feb 22
1
[LLVMdev] Area for improvement
...that a piece of code is hot), the second JIT gets
different LLVM code than the first one had as input. We are still not
quite to the point where this is the case, but we are getting there.
2. The way LowerMultiDimRefs works is by decimating GEP instructions into
pieces, then relying on GCSE and LICM to clean them up. The problem
with this is that GCSE and LICM are not the trivial passes that you'd
like them to be for a simple cleanup job like this. In particular,
GCSE requires a value numbering implementation, LICM requires
loop info and alias analysis.
Finally,...
2008 May 21
0
[LLVMdev] Optimization passes organization and tradeoffs
On Wednesday 21 May 2008 15:48, Chris Lattner wrote:
> > What's the difference between GVN and GCSE, if they both perform common
> > subexpression elimination?
>
> GVN does more, and is a better algorithm. GCSE is basically deprecated
> and should be removed at some point.
Er...waitaminute. Maybe there's something I don't fully grok about GVN,
but in general, value numbe...
2006 May 10
2
[LLVMdev] SCCP
Chris Lattner wrote:
> On Tue, 9 May 2006, Nick Lewycky wrote:
>
>>> You could do that, but SCCPSolver isn't really useful to mainline LLVM
>>> for anything other than SCCP and IPSCCP, so we don't need it in a public
>>> header. Out of curiosity, what are you looking to use the latice values
>>> for? Why not just run SCCP and then look at the
2008 May 21
2
[LLVMdev] Optimization passes organization and tradeoffs
...to
"fadd"/"iadd" and then make the "fp" operations have some sort of flags to
parameterize the optimizations allowed for them. This would allow us to
propagate down the equivalent of GCC's -ffast-math into the IR.
> What's the difference between GVN and GCSE, if they both perform common
> subexpression elimination?
GVN does more, and is a better algorithm. GCSE is basically deprecated
and should be removed at some point.
> So far LLVM is working great for me. I'm impressed by the overall
> architecture and the fair learning curve. I...
2006 May 10
2
[LLVMdev] SCCP
...le this time.
> 1. The SCCP pass only does really simple propagation of loads: in
> particular, a load will only be "constant folded" if it is a load from
> a constant global. This isn't, so SCCP won't touch it.
> 2. SCCP isn't propagating foo[0], -load-vn -gcse does. In particular,
> GCSE sees a store to a memory location, followed by a load from the
> same location (without an intervening, potentially aliasing, store).
> It forward propagates the stored value to the load (in this case, the
> constant), eliminating the load.
I te...
2005 Jan 19
1
[LLVMdev] Constant Propagation Problem
...RaisePointerReferencesPass
TailDuplicationPass
CFGSimplificationPass
ScalarReplAggregatesPass
InstructionCombiningPass
ReassociatePass
InstructionCombiningPass
TailCallEliminationPass
CFGSimplificationPass
LICMPass
InstructionCombiningPass
IndVarSimplifyPass
LoopUnrollPass
InstructionCombiningPass
GCSEPass
SCCPPass
InstructionCombiningPass
DeadStoreEliminationPass
AggressiveDCEPass
CFGSimplificationPass
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: optimizeme.txt
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20050119/1336c2...
2005 Feb 22
4
[LLVMdev] Area for improvement
...knowledge of how the instruction
selector will select the code (e.g. the advice about allowing constant
indices to be grouped together).
This is *exactly* the reason why the new instruction selection framework
was introduced. It already handles local CSE trivially, and will be
extended to do GCSE, LICM, and eventually PDCE as time permits. Combined
with loop strength reduction, these problems should go completely away.
Also, with the new instruction selection frameworks, targets don't have to
handle GEP instructions at all, so the "complexity" argument above
doesn't a...
2008 Sep 04
3
[LLVMdev] A simple case about SDiv
...]
sdiv i32 %0, %1 ; <i32>:2 [#uses=1]
ret i32 %2
}
With llvm-gcc -O2, I got:
define i32 @test(i32 %x, i32 %y) nounwind {
entry:
sdiv i32 %x, %y ; <i32>:0 [#uses=1]
ret i32 %0
}
I wonder which pass does this transform.
I tried several passes, like -instcombine, -simplifycfg, -gcse -globaldce
-globalopt -adce , but all failed to do this transform.
Anybody know this? Thanks.
Sheng.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080904/e0428101/attachment.html>
2006 Mar 17
3
[LLVMdev] Stupid '-load-vn -licm' question (LLVM 1.6)
...ds appear at the top of the %regex6 and %regex2
>> blocks below. I've tried various alias analysis implementations
>> either alone or in combination.
>
> LICM doesn't remove common subexpressions, also -load-vn doesn't
> affect LICM. Try "-licm -load-vn -gcse" instead of "-load-vn -licm"
That works! Thank you. The bytecodes look really good--not only are
the loads eliminated, but the tests are actually reduced to a switch
statement using '-anders-aa -load-vn -gcse -simplifycfg -instcombine':
regex6: ; preds = %loop_t...
2006 Aug 23
5
negatively skewed data; reflecting
...s applied. I know that you first need to reflect the negatively skewed data and then apply another transformation such as log, square root etc to bring it towards normailty. How is it that I reflect data in R? I'm sorry if this seems a very simple task, I think it involves going back to Maths GCSE and relearning reflection, rotation, translation etc! I have searched the internet, but cannot come up with anything useful on how to reflect data.
> hist(Lsoc) #how do I reflect Lsoc in R?
I am grateful for any help regarding this matter, it is just a very small part of my analysis and does...
2007 Jul 18
1
[LLVMdev] llvm-ld doesn't honor -Ox
...O1 ?!?
3 argpromotion - Number of aggregate arguments promoted
25 constmerge - Number of global constants merged
2 deadargelim - Number of unread args removed
0 deadargelim - Number of unused return values removed
29 dse - Number of stores deleted
1103 gcse - Number of instructions removed
17 gcse - Number of instructions removed due to non-instruction values
316 gcse - Number of loads removed
1 globaldce - Number of global variables removed
3 globalopt - Number of functions converted to fastc...
2006 Mar 17
0
[LLVMdev] Stupid '-load-vn -licm' question (LLVM 1.6)
...t;
> The duplicate loads appear at the top of the %regex6 and %regex2 blocks
> below. I've tried various alias analysis implementations either alone or in
> combination.
LICM doesn't remove common subexpressions, also -load-vn doesn't affect
LICM. Try "-licm -load-vn -gcse" instead of "-load-vn -licm"
-Chris
> Any thoughts? I'm sure that this will prove embarrassingly obvious. :-)
>
> Cheers,
> Eric
>
> ; ModuleID = 'regex-opt.bc'
>
> implementation ; Functions:
>
> bool %matches(ubyte* %begin, ubyte* %end)...
2006 Mar 16
2
[LLVMdev] Stupid '-load-vn -licm' question (LLVM 1.6)
Hello! I'm compiling code which uses pointers as iterators. For some
reason--probably a silly misunderstanding of the docs--I can't
eliminate duplicate pointer loads. I'll probably figure this out
eventually, but if somebody else sees the answer instantly, I
certainly won't complain. :-)
Here are the optimizers I'm running:
opt -f -simplifycfg -dce -instcombine
2008 Sep 04
0
[LLVMdev] A simple case about SDiv
> I tried several passes, like -instcombine, -simplifycfg, -gcse -globaldce
> -globalopt -adce , but all failed to do this transform.
Try "opt -std-compile-opts -debug-pass=Arguments"
If that does the simplification, then try bisecting
the set of passes it ran (printed thanks to -debug-pass)
to find out which combination did it.
Ciao,
Duncan.