Displaying 3 results from an estimated 3 matches for "zsqr".
Did you mean:
sqr
2009 Feb 19
0
[LLVMdev] Improving performance with optimization passes
...day 19 February 2009 19:00:14 Jon Harrop wrote:
> I'm toying with benchmarks on my HLVM and am unable to get any performance
> improvement from optimization passes...
I just disassembled some of the IR before and after optimization. This example
function squares a complex number:
let zsqr(r, i) = (r*r - i*i, 2*r*i)
My compiler is generating:
define fastcc i32 @zsqr({ double, double }*, { double, double }) {
entry:
%2 = alloca { double, double } ; <{ double, double }*> [#uses=2]
%3 = getelementptr { double, double }* %2, i32 0 ; <{ double, double }*>
[#uses=1]
sto...
2009 Feb 19
6
[LLVMdev] Improving performance with optimization passes
I'm toying with benchmarks on my HLVM and am unable to get any performance
improvement from optimization passes. Moreover, some of my programs generate
a lot of redundant code (e.g. alloca a struct, store a struct into it and
read only one field without using the rest of the struct) and this does not
appear to be optimized away.
I simply copied the use of PassManager from the Kaleidoscope
2009 Feb 19
1
[LLVMdev] Improving performance with optimization passes
...> This example
> function squares a complex number:
Something is definitely wrong with the way you're using optimization
passes.
> The ideal result is probably:
It is indeed so:
./opt -std-compile-opts test.bc | ./llvm-dis
; ModuleID = '<stdin>'
define fastcc i32 @zsqr({ double, double }* nocapture, { double,
double }) nounwind {
entry:
%2 = extractvalue { double, double } %1, 0 ; <double> [#uses=1]
%3 = extractvalue { double, double } %1, 0 ; <double> [#uses=1]
%4 = mul double %2, %3 ; <double> [#uses=1]
%5 = extractvalue { double, dou...