similar to: Definitive list of optimisations at each optimisation level

Displaying 20 results from an estimated 10000 matches similar to: "Definitive list of optimisations at each optimisation level"

2017 Jun 24
2
Definitive list of optimisations at each optimisation level
Right but then you'll have to call each opt level. Have u looked in the pass manager? On Jun 24, 2017 3:52 PM, "Sean Silva via llvm-dev" <llvm-dev at lists.llvm.org> wrote: > The most definitive list you can probably hope to get will be obtained by > passing -mllvm -debug-pass=Structure to a clang invocation. > > -- Sean Silva > > On Jun 24, 2017 7:10 AM,
2017 Jun 25
2
Definitive list of optimisations at each optimisation level
I agree, it's much clearer, it just takes runs at multiple opt levels and therefore I don't find it to be a "one stop shop". On Jun 24, 2017 8:44 PM, "Sean Silva" <chisophugis at gmail.com> wrote: > Looking at PassManagerBuilder can be useful because there are sometimes > comments giving some idea of the intent of the particular choice of passes, > but
2017 Jun 29
3
Definitive list of optimisations at each optimisation level
On Mon, Jun 26, 2017 at 5:04 AM, ORiordan, Martin <martin.oriordan at intel.com > wrote: > Thanks Sean and Silva. > > > > I guess what I was seeking was a URL that I could point (non-compiler) > people at, but I guess no such reference exists. What I can do if > reference bot the source manager and use ‘-mllvm -debug-pass=Structure’ > for each optimisation level,
2016 Feb 11
2
Vectorization with fast-math on irregular ISA sub-sets
Our processor also has some issues regarding the handling of denormals - scalar and vector - and we ran into a related problem only a few days ago. The v3.8 compiler has done a lot of good work on optimisations for floating-point math, but ironically one of them broke our implementation of 'nextafterf'. The desired code fragment (FP32) is: float xAbs = fabsf(x); since we know our
2016 Oct 03
3
Default alignment for 'malloc'
I am trying to implement some new alignment based optimisations in our target backend, and I am wondering if there a way a target can specify that 'malloc', 'realloc' and 'calloc' always return a pointer to memory that is aligned to a particular boundary? Related too, is it possible to specify that the stack pointer always points to memory which is aligned to a
2017 May 18
3
Memory accesses and determining aliasing at the MI level
In order to implement a subtle memory access optimisation during post-RA scheduling, I want to be able to determine some properties about the memory access. If I have two registers referring to memory, how can I determine if they are derived from the same base-pointer? Often LLVM will optimise to use intermediate registers holding partial displacements, for example, when a 'struct'
2016 Sep 20
4
LLVM v3.9.0 and math built-ins
Hi Mehdi, The ISO C specification does permit the math functions to modify ‘errno’, but I thought that the ‘-fno-math-errno’ option was to tell the optimiser to assume that ‘errno’ is not modified by the math functions. Explicitly providing ‘-fno-math-errno’ is not restoring the elision optimisation that was performed by LLVM v3.8, and this is really only a driver option, with ‘-fmath-errno’
2017 Sep 29
2
Change in optimisation with UB in mind
With LLVM v5.0, I found failures in some of the 'gcc.c-torture/execute' tests due to a change in the optimisation where undefined behaviour is involved. The tests that fail are the '20040409-[123].c' tests. The underlying failure is due to the optimisation of the following: int test2(int x) { return x + INT_MIN; } from using an ADD instruction to using an OR instruction.
2017 Sep 22
0
Effectiveness of llvm optimisation passes
Have -O0 on your clang command line causes all functions to get marked with an 'optnone' attribute that prevents opt from being able to optimize them later. You should also add "-Xclang -disable-O0-optnone" to your command line. ~Craig On Thu, Sep 21, 2017 at 10:04 PM, Yi Lin via llvm-dev < llvm-dev at lists.llvm.org> wrote: > Hi all, > > I am trying to
2017 Sep 22
5
Effectiveness of llvm optimisation passes
Hi all, I am trying to understand the effectiveness of various llvm optimisations when a language targets llvm (or C) as its backend. The following is my approach (please correct me if I did anything wrong): I am trying to explicitly control the optimisations passes in llvm. I disable optimisation in clang, but instead emit unoptimized llvm IR, and use opt to optimise that. These are what I
2016 May 10
2
How to extend alias analysis to enable further optimisations?
Hello, We have developed a compiler analysis for multi-threaded codes that identifies functions which do not modify global variables. Furthermore, the analysis checks that accesses performed before the function call, do not target the same location as accesses performed after the call (hence, the variables accessed before and after the call do not alias). We want to integrate this analysis
2012 Apr 25
3
[LLVMdev] Not enough optimisations in the SelectionDAG phase?
For the following code fragment, ; <label>:27 ; preds = %27, %entry %28 = load volatile i32* inttoptr (i64 2149581832 to i32*), align 8 %29 = icmp slt i32 %28, 0 br i1 %29, label %27, label %loop.exit loop.exit: ; preds = %27 llc will generate following MIPS code, $BB0_1: lui $3, 32800 ori $3, $3, 1032 lw
2017 Sep 22
1
Effectiveness of llvm optimisation passes
I noticed that there is a '-run-pass' argument for llc. I am wondering if I can do a similar approach with machine level optimisations/passes for llc. Are those passes optional (so I can turn them off)? And how can I get MIR format as llc expects with '-run-pass'? Thanks a lot. Cheers, Yi On 22/9/17 15:10, Craig Topper wrote: > Have -O0 on your clang command line causes
2017 Oct 03
2
Change in optimisation with UB in mind
Hi Sanjoy, Yes these are C tests (from 'gcc.c-torture/execute'), and as I indicated in my original message, the tests are not valid because the behaviour is undefined. However, it was while investigating these new failures in these tests that I realised that this optimisation existed. The optimisation itself is perfectly valid, but it does mean that integer underflow will no longer be
2015 Nov 09
3
[cfe-dev] [RFC] __attribute__((internal_linkage))
With respect only to '__attribute__((internal_linkage))', not 'nodebug' and other parts of this topic; does hiding "some" members and not others not introduce a violation of the ODR because some members of the class as it appears in one translation unit are not the same actual definitions as the apparently "same" members of the class in another translation unit?
2017 Oct 03
2
Change in optimisation with UB in mind
Yes, the hairy-edges of undefined behaviour - UB is UB. It does mean that given: __attribute__((noinline)) int foo(int a, int b) { return a + b; } int bar1(int x) { return foo(x, INT_MIN); } int bar2(int x) { return x + INT_MIN; } 'bar1' and 'bar2' have different outcomes. However, I think that the new optimisation is neat and valid and I am not suggesting that it should
2018 Apr 04
2
[RFC] Adding function attributes to represent codegen optimization level
Sorry, my reply “to all” left out LLVM-Dev From: Martin J. O'Riordan [mailto:MartinO at theheart.ie] Sent: 04 April 2018 16:41 To: 'David Blaikie' <dblaikie at gmail.com>; 'mcrosier at codeaurora.org' <mcrosier at codeaurora.org>; 'Chandler Carruth' <chandlerc at gmail.com>; 'Eric Christopher' <echristo at gmail.com> Subject: RE:
2012 Apr 29
0
[LLVMdev] Not enough optimisations in the SelectionDAG phase?
On Apr 24, 2012, at 11:48 PM, Fan Dawei wrote: > For the following code fragment, > > ; <label>:27 ; preds = %27, %entry > %28 = load volatile i32* inttoptr (i64 2149581832 to i32*), align 8 > %29 = icmp slt i32 %28, 0 > br i1 %29, label %27, label %loop.exit > > loop.exit: ; preds = %27
2016 Jul 13
3
[cfe-dev] [RFC] __attribute__((internal_linkage))
Hi Evgenii, I was wondering what the status is of your work to attach "internal_linkage" to methods of standard library classes in libc++. The following piece of code doesn't link because a symbol (string::empty) is undefined and it sounds like your work might fix the linkage error I'm seeing. $ cat test1.cpp #include <string> #include <functional> int main() {
2012 Apr 29
1
[LLVMdev] Not enough optimisations in the SelectionDAG phase?
On 04/29/2012 01:19 PM, Evan Cheng wrote: > On Apr 24, 2012, at 11:48 PM, Fan Dawei wrote: > >> For the following code fragment, >> >> ;<label>:27 ; preds = %27, %entry >> %28 = load volatile i32* inttoptr (i64 2149581832 to i32*), align 8 >> %29 = icmp slt i32 %28, 0 >> br i1 %29, label %27, label