Displaying 20 results from an estimated 67 matches for "constmerg".
Did you mean:
constmerge
2007 Sep 30
1
[LLVMdev] noinline
...erested in telling the compiler not to inline a given function, and
discovered that the __attribute__((noinline)) implements this using a global
variable @llvm.noinline. It did not work for me initially. I noticed that @
llvm.noinline was being internalized by -internalize, dead-code-eliminated
by -constmerge, causing this information not to reach the -inline pass.
I am not sure if this is a bug, or I am just using the passes in some wrong
way. Initially I thought, maybe I was being a clown by doing "opt
-internalize -constmerge -inline" in that order, but then I discovered that
even llvm-ld...
2009 Sep 05
3
[LLVMdev] tblgen bug in handling case , switch_on
Hi,
On Sat, Sep 5, 2009 at 9:12 PM, Sanjiv Gupta<sanjiv.gupta at microchip.com> wrote:
> Is the patch below ok?
>
> Index: LLVMCConfigurationEmitter.cpp
> ===================================================================
> --- LLVMCConfigurationEmitter.cpp (revision 80668)
> +++ LLVMCConfigurationEmitter.cpp (working copy)
> @@ -1141,6 +1141,7 @@
>
2009 Jul 21
2
[LLVMdev] Total size of global data
I wrote a pass that attempts to add up the total size of the global
data in a module. Currently, it iterates through all of the global
values and checks their type sizes using TargetData. I have realized
that this is not quite right because global values can point to the
same data in memory (or can at least overlap) as in the case of
constant strings.
Is there an easier way to approach this? It
2009 Jul 21
0
[LLVMdev] Total size of global data
...data in memory (or can at least overlap) as in the case of
> constant strings.
It's impossible to tell what exactly will get merged until link-time;
also, CodeGen often introduces constant globals. That said, as far as
I know, LLVM doesn't know how to merge constants beyond running the
constmerge pass and emitting globals into sections which can be
merged.
What are you actually trying to do?
-Eli
2008 Oct 16
2
[LLVMdev] LLVM 2.4 problem? (resend)
...better luck.
Not marking the variable const only makes the problem more obscure.
Testcase in C:
static char x = 1, y = 1;int c() {char* u = &x; char* v = &y; return u
== v;} int d() {return x+y;}
Running this through "llvm-gcc -O0 -emit-llvm -c -x c - -o - | opt
-mem2reg -globalopt -constmerge -instcombine" has precisely the same
effect: c returns 1.
It's conceivable that globalopt+constmerge could do even crazier
stuff. Potential example: suppose we have two mallocs, and store the
allocated pointers into globals. GlobalOpt knows how to turn mallocs
into statically allocated...
2018 Mar 14
2
Debugify and Verify-each mode
...why do not let people verify each
pass in -O{1,2,3} pipeline?
My second question is more about debugify: what should be the best way to
debugify each pass? Adding a debugify-each mode would make the output
unreadable! Maybe writing a script that collects all optimization options
(like -mem2reg or -constmerge), then pass each one of them to opt with
-enable-debugify so that we have 1 output file for each debugified pass?
Thank you for your help,
Son Tuan Vu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180314...
2009 Jan 25
0
[LLVMdev] -O4 limitations in llvm/llvm-gcc-4.2 2.5?
...ing all of pymol 1.1r2 with
> -O4 on darwin9. Everythink links and there appears to be
> no regressions in the resulting code. I take it that LTO
> in llvm 2.5 is still limited to dead code elimination,
> correct?
No.
libLTO does the equivalent to opt -internalize -ipsccp -globalopt
-constmerge -deadargelim -instcombine -inline -prune-eh -globaldce
-argpromotion -instcombine -jump-threading -scalarrepl -globalsmodref-aa
-licm -gvn -memcpyopt -dse -instcombine -jump-threading -mem2reg
-simplifycfg -globaldce
Will LTO ever be extended to inlining across
> files as well as constant...
2011 Dec 30
1
[LLVMdev] Safe Passes
Which transformation passes are 'safe', meaning it does not worsens the
effectiveness of a later pass or the generated code? I imagine all
passes which either removes data or add attributes are included in this
list, plus some simplification passes:
-adce
-argpromotion
-constmerge
-constprop
-deadargelim
-dse
-functionattrs
-globaldce
-globalopt
-gvn
-instcombine
-internalize
-ipconstprop
-ipsccp
-licm
-prune-eh
-sccp
Also, is there any redundant pass in this list (things line sccp/ipsccp)?
2011 Feb 27
0
[LLVMdev] LLVM IR Type System Rewrite
...e, lets say we have
%Foo = type { i32 }
%Bar = type { i32 }
@a = unnamed_addr constant %Foo { i32 42 }
@a = unnamed_addr constant %Bar { i32 42 }
The typemerge pass could turn this into
@a = unnamed_addr constant {i32} { i32 42 }
@b = unnamed_addr constant {i32} { i32 42 }
And constmerge will then merge them as it does today.
Another comment is that getting anonymous types would still be a bit
expensive. Can we get away with just Named types (including Unnamed) and
trusting typemerge to do its job?
> -Chris
Cheers,
Rafael
2009 Jan 25
2
[LLVMdev] -O4 limitations in llvm/llvm-gcc-4.2 2.5?
I've had better luck compiling all of pymol 1.1r2 with
-O4 on darwin9. Everythink links and there appears to be
no regressions in the resulting code. I take it that LTO
in llvm 2.5 is still limited to dead code elimination,
correct? Will LTO ever be extended to inlining across
files as well as constant-folding and global data
allocation optimizations? Or does the reliance on gcc-4.2
as the
2007 May 18
0
[LLVMdev] API changes (was Antw.: 2.0 Pre-release tarballs online)
On Sat, 19 May 2007, Anton Korobeynikov wrote:
>> * It seems that a C-call like printf("---\n") is transformed to puts
>> ("---") in the LLVM IR instead of keeping it a printf. What are the
>> circumstances in which this happens? Do other similar conversions
>> occur? Can this be turned off (lower optimisation level?)? Manually
>> replacing the
2011 Nov 15
1
[LLVMdev] opt -O2 optimization passes
...lify -lcssa -iv-users -indvars -loop-idiom
-loop-deletion -loop-unroll -instcombine -memdep -gvn -memdep -memcpyopt
-sccp -instcombine -lazy-value-info -jump-threading -correlated-propagation
-domtree -memdep -dse -adce -simplifycfg -strip-dead-prototypes
-print-used-types -deadtypeelim -globaldce -constmerge -globalopt -ipsccp
-deadargelim -instcombine -simplifycfg -basiccg -prune-eh -inline
-functionattrs -scalarrepl-ssa -domtree -early-cse -simplify-libcalls
-lazy-value-info -jump-threading -correlated-propagation -simplifycfg
-instcombine -tailcallelim -simplifycfg -reassociate -domtree -loops
-loo...
2013 Aug 19
1
[LLVMdev] How to disbale loop-rotate in opt -O3 ?
...-instcombine -scalar-evolution -loop-simplify -lcssa -indvars -loop-idiom -loop-deletion -loop-unroll -memdep -gvn -memdep -memcpyopt -sccp -instcombine -lazy-value-info -jump-threading -correlated-propagation -domtree -memdep -dse -adce -simplifycfg -instcombine -strip-dead-prototypes -globaldce -constmerge -preverify -domtree -verify file.ll
However, I am not successful in calling the passes in this form, as I already get an error on the first pass:
LLVM ERROR: Bad TargetData ctor used. Tool did not specify a TargetData to use?
Any advice on how can I either:
(i) disable loop rotation
(ii) inhibi...
2008 Oct 15
0
[LLVMdev] LLVM 2.4 problem? (resend)
On Oct 15, 2008, at 6:58 AM, Tatu Vaajalahti wrote:
>> Yes, but why do you think they should get a different address? I can
>> understand that it is surprising that they do, but determining
>> whether
>> this is legal or not requires reading the language standard.
>> Hopefully
>> a language lawyer can chime in and say whether this transform is
>>
2015 May 11
2
[LLVMdev] about MemoryDependenceAnalysis usage
...a -branch-prob -block-freq -scalar-evolution -loop-vectorize
> -instcombine -scalar-evolution -slp-vectorizer -simplifycfg -domtree
> -instcombine -loops -loop-simplify -lcssa -scalar-evolution -function_tti
> -loop-unroll -alignment-from-assumptions -strip-dead-prototypes -globaldce
> -constmerge -playdep -verify -verify-di -print-module
> Target Library Information
> Data Layout
> No target information
> Target independent code generator's TTI
> X86 Target Transform Info
> No Alias Analysis (always returns 'may' alias)
> Type-Based Alias Analysis
> Scop...
2007 May 23
1
[LLVMdev] API changes (was Antw.: 2.0 Pre-release tarballs online)
On Tue, 22 May 2007 23:52:46 -0700 (PDT)
Chris Lattner <sabre at nondot.org> wrote:
>On Sun, 20 May 2007, Bram Adams wrote:
>> On a related note: while using llvmc I have some test cases where the
>> following error now pops up on Linux X86 (not on OSX):
>>
>> <premain>: CommandLine Error: Argument 'debug' defined more than once!
>> llvmc:
2007 May 18
1
[LLVMdev] API changes (was Antw.: 2.0 Pre-release tarballs online)
Hello, Bram
> * It seems that a C-call like printf("---\n") is transformed to puts
> ("---") in the LLVM IR instead of keeping it a printf. What are the
> circumstances in which this happens? Do other similar conversions
> occur? Can this be turned off (lower optimisation level?)? Manually
> replacing the puts-calls by a printf-call is not
2015 Jan 17
3
[LLVMdev] loop multiversioning
...-loop-simplify -lcssa -branch-prob -block-freq -scalar-evolution
-loop-vectorize -instcombine -scalar-evolution -slp-vectorizer -simplifycfg
-domtree -instcombine -loops -loop-simplify -lcssa -scalar-evolution
-function_tti -loop-unroll -alignment-from-assumptions
-strip-dead-prototypes -globaldce -constmerge -domtree -loops
-loop-simplify -lcssa -licm
Pass Arguments: -datalayout -notti -basictti -x86tti -targetlibinfo
-jump-instr-table-info -targetpassconfig -no-aa -tbaa -scoped-noalias
-assumption-tracker -basicaa -collector-metadata -machinemoduleinfo
-machine-branch-prob -jump-instr-tables -atomic...
2008 Oct 15
4
[LLVMdev] LLVM 2.4 problem? (resend)
On 15.10.2008, at 16.43, Duncan Sands wrote:
>> True, but note that it is the address of a variable that is used, not
>> the value.
>
> Yes, but why do you think they should get a different address? I can
> understand that it is surprising that they do, but determining whether
> this is legal or not requires reading the language standard.
> Hopefully
> a language
2008 Oct 16
2
[LLVMdev] merging globals
...t it seems reasonable. The more conservative
definition of the semantics is just to say that the compiler chooses
whether any pair of mergeable globals are distinct objects, which is
roughly how the current C99 standard defines string merging.
This has the following effects on current optimizers: constmerge only
merges globals marked mergeable. Only mergeable constants are emitted
into mergeable sections in assembly. If we use the conservative
definition of mergeable, fix any code that assumes distinct globals
don't get merged, like the code that folds equality comparisons
between distinct glob...