similar to: Redefining optnone to help LTO

Displaying 20 results from an estimated 20000 matches similar to: "Redefining optnone to help LTO"

2017 Jan 14
2
Redefining optnone to help LTO
Can you clarify what would be the semantic of this new attribute compared to optnone? Thanks, — Mehdi > On Jan 13, 2017, at 9:43 PM, Philip Reames via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > I would prefer we introduce a new attribute for this purpose. I regularly use optnone for debugging/reduction purposes or when trying to understand the interaction of our pass
2017 Jan 16
2
Redefining optnone to help LTO
> On Jan 16, 2017, at 10:00 AM, Sean Silva via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > What is the end goal? If the goal is roughly "if a user passes -O0 when compiling a TU in LTO mode, their final binary should have functions that look like the result of -O0 noLTO compilation", then the frontend can just emit a normal -O0 object file I think. What is the
2019 Nov 13
2
Difference between clang -O1 -Xclang -disable-O0-optnone and clang -O0 -Xclang -disable-O0-optnone in LLVM 9
Hello, I m trying to test individual O3 optimizations/ replicating O3 behavior on IR. I took unoptimized IR (O0), used disable-o0-optnone via (*clang -O0 -Xclang -disable-O0-optnone*). I read somewhere about *clang -O1 -Xclang -disable-O0-optnone,* so I also tested on this initial IR. I have observed by using individual optimizations, the performance (i.e time) is better when the base/initial
2018 Jan 07
2
Relationship between clang, opt and llc
On Jan 5, 2018 11:30 PM, "toddy wang via llvm-dev" <llvm-dev at lists.llvm.org> wrote: What I am trying is to compile a program with different sets of optimization flags. If there is no fine-grained control over clang optimization flags, it would be impossible to achieve what I intend. LLD has -lto-newpm-passes (and the corresponding -lto-newpm-aa-pipeline) which allows you to
2018 Jan 06
4
Relationship between clang, opt and llc
O0 didn't start applying optnone until r304127 in May 2017 which is after the 4.0 family was branched. So only 5.0, 6.0, and trunk have that behavior. Commit message copied below Author: Mehdi Amini <joker.eph at gmail.com> Date: Mon May 29 05:38:20 2017 +0000 IRGen: Add optnone attribute on function during O0 Amongst other, this will help LTO to correctly handle/honor
2018 Jan 06
3
Relationship between clang, opt and llc
I don't think "clang -help" prints options about optimizations. Clang itself doesn't have direct support for fine grained optimization control. Just the flag for levels -O0/-O1/-O2/-O3. This is intended to be simple and sufficient interface for most users who just want to compile their code. So I don't think there's a way to pass just -dse to clang. opt on the other hand
2018 Jan 07
2
Relationship between clang, opt and llc
No, I meant LLD, the LLVM linker. This option for LLD is relevant for exploring different pass pipelines for link time optimization. It is essentially equivalent to the -passes flag for 'opt'. Such a flag doesn't make much sense for 'llc' because llc mostly runs backend passes, which are much more difficult to construct custom pipelines for (backend passes are often required
2018 Jan 06
0
Relationship between clang, opt and llc
Craig, thanks a lot! I'm actually confused by clang optimization flags. If I run clang -help, it will show many optimizations (denoted as set A) and non-optimization options (denoted as set B). If I run llvm-as < /dev/null | opt -O0/1/2/3 -disable-output -debug-pass=Arguments, it also shows many optimization flags (denote as set C). There are many options in set C while not in set A,
2018 Jan 06
0
Relationship between clang, opt and llc
What I am trying is to compile a program with different sets of optimization flags. If there is no fine-grained control over clang optimization flags, it would be impossible to achieve what I intend. Although there is fine-grained control via opt, for a large-scale projects, clang-opt-llc pipeline may not be a drop-in solution. On Fri, Jan 5, 2018 at 10:00 PM, Craig Topper <craig.topper at
2018 Jan 07
0
Relationship between clang, opt and llc
@Sean, do you mean llc ? For llc 4.0 and llc 5.0, I cannot find -lto-newpm-passes option, is it a hidden one? On Sat, Jan 6, 2018 at 7:37 PM, Sean Silva <chisophugis at gmail.com> wrote: > > > On Jan 5, 2018 11:30 PM, "toddy wang via llvm-dev" < > llvm-dev at lists.llvm.org> wrote: > > What I am trying is to compile a program with different sets of >
2018 Jan 08
2
Relationship between clang, opt and llc
Hi Toddy, You can achieve what you're looking for with a pipeline based on `clang -Ox` + `opt -Ox` + `llc -Ox` (or lld instead of llc), but this won't be guarantee'd to be well supported across releases of the compiler. Otherwise, if there are some performance-releated (or not...) command line options you think clang is missing / would benefit, I invite you to propose adding them to
2018 Jan 06
2
Relationship between clang, opt and llc
@Craig and @Michael After installing clang-5.0 (download from http://releases.llvm.org, does not have Flang build's slowdown mention above), 1. clang++ -O0 -Xclang -disable-O0-optnone -Xclang -disable-llvm-passes -c -emit-llvm -o a.bc LULESH.cc; opt -O3 a.bc -o b.bc; llc -O3 -filetype=obj b.bc -o b.o ; clang++ b.o -o b.out; ./b.out 20 runtime: 2.354069e+01 2. clang++ -O1 -Xclang
2018 Jan 08
0
Relationship between clang, opt and llc
@Sean, here is my summary of several tools. Format: (ID,tool, input->output, timing, customization, questions) 1. llc, 1 bc -> 1 obj, back-end compile-time (code generation and machine-dependent optimizations), Difficult to customize pipeline, N/A 2. LLD: all bc files and obj files -> 1 binary (passing -flto to clang for *.bc file generation), back-end link-time optimizations and
2018 Jan 07
2
Relationship between clang, opt and llc
Hi, "SetC" options are LLVM cl::opt options, they are intended for LLVM developer and experimentations. If a settings is intended to be used as a public API, there is usually a programmatic way of setting it in LLVM. "SetA" is what clang as a C++ compiler exposes to the end-user. Internally clang will (most of the time) use one or multiple LLVM APIs to propagate a settings.
2018 Jan 08
1
Relationship between clang, opt and llc
On Jan 7, 2018 8:46 PM, "toddy wang" <wenwangtoddy at gmail.com> wrote: @Sean, here is my summary of several tools. Format: (ID,tool, input->output, timing, customization, questions) 1. llc, 1 bc -> 1 obj, back-end compile-time (code generation and machine-dependent optimizations), Difficult to customize pipeline, N/A 2. LLD: all bc files and obj files -> 1 binary
2018 Jan 06
2
Relationship between clang, opt and llc
Thanks a lot, it is clear to me now. BTW, for Clang's slowdown, I submit an issue here: https://github.com/flang-compiler/flang/issues/356 I have no idea about the root cause. Maybe due to debug symbols. But, I already use -DCMAKE_BUILD_TYPE=Release. Anyway, I believe there is a bug somewhere. On Sat, Jan 6, 2018 at 3:43 PM, Craig Topper <craig.topper at gmail.com> wrote: >
2018 Jan 08
2
Relationship between clang, opt and llc
For the types of things that you are looking for, you may just want to try a bunch of -mllvm options. You can tune inlining and unrolling threshold like that, for example. On Jan 7, 2018 10:33 PM, "toddy wang via llvm-dev" <llvm-dev at lists.llvm.org> wrote: > Hi Mehdi, > > Now we have 5 pipelines. (In addition to the first 3, which I have > described in detail above,
2018 Jan 08
2
Relationship between clang, opt and llc
2018-01-07 23:16 GMT-08:00 toddy wang <wenwangtoddy at gmail.com>: > -mllvm <value> Additional arguments to forward to LLVM's option > processing > > This is dumped by clang. I am not sure what I am supposed to put as value > in order to tune unrolling/inlining threshold. > As the help says, this is used to pass argument to LLVM itself. If you remember
2018 Jan 06
1
Relationship between clang, opt and llc
After build LLVM5.0, I found that clang-5.0 is extremely slow. Even it is built with -DCMAKE_BUILD_TYPE=Release For building LULESH.cc, it gets stucked at linkage stage. I build it as instructed from here https://github.com/flang-compiler/flang Maybe I should submit a bug. On Fri, Jan 5, 2018 at 8:41 PM, toddy wang <wenwangtoddy at gmail.com> wrote: > Craig, thanks a lot! > >
2018 Jan 06
0
Relationship between clang, opt and llc
-disable-O0-optnone has no effect with anything other than -O0. -O0 being passed to clang also causes all functions to be marked noinline. I don't know if there is a command line option to turn that off. I recommend passing "-O1 -Xclang -disable-llvm-passes" to clang. Passing -O0 very specifically means disable optimizations. ~Craig On Sat, Jan 6, 2018 at 12:25 PM, toddy wang