Edited more code blocks in docs
This commit is contained in:
parent
38078713f3
commit
3b16d92537
2 changed files with 31 additions and 31 deletions
|
|
@ -511,12 +511,12 @@ the Builder. We will add optimizations explicitly in the next chapter.
|
||||||
Read a function definition:
|
Read a function definition:
|
||||||
define double @foo(double %a, double %b) {
|
define double @foo(double %a, double %b) {
|
||||||
entry:
|
entry:
|
||||||
%multmp = fmul double %a, %a ; [#uses=1]
|
%multmp = fmul double %a, %a ; <double> [#uses=1]
|
||||||
%multmp1 = fmul double 2.000000e+00, %a ; [#uses=1]
|
%multmp1 = fmul double 2.000000e+00, %a ; <double> [#uses=1]
|
||||||
%multmp2 = fmul double %multmp1, %b ; [#uses=1]
|
%multmp2 = fmul double %multmp1, %b ; <double> [#uses=1]
|
||||||
%addtmp = fadd double %multmp, %multmp2 ; [#uses=1]
|
%addtmp = fadd double %multmp, %multmp2 ; <double> [#uses=1]
|
||||||
%multmp3 = fmul double %b, %b ; [#uses=1]
|
%multmp3 = fmul double %b, %b ; <double> [#uses=1]
|
||||||
%addtmp4 = fadd double %addtmp, %multmp3 ; [#uses=1]
|
%addtmp4 = fadd double %addtmp, %multmp3 ; <double> [#uses=1]
|
||||||
ret double %addtmp4
|
ret double %addtmp4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -530,9 +530,9 @@ LLVM builder calls that we use to create the instructions.
|
||||||
|
|
||||||
ready> def bar(a) foo(a, 4.0) + bar(31337) Read a
|
ready> def bar(a) foo(a, 4.0) + bar(31337) Read a
|
||||||
function definition: define double @bar(double %a) { entry: %calltmp =
|
function definition: define double @bar(double %a) { entry: %calltmp =
|
||||||
call double @foo(double %a, double 4.000000e+00) ; [#uses=1] %calltmp1 =
|
call double @foo(double %a, double 4.000000e+00) ; <double> [#uses=1] %calltmp1 =
|
||||||
call double @bar(double 3.133700e+04) ; [#uses=1] %addtmp = fadd double
|
call double @bar(double 3.133700e+04) ; <double> [#uses=1] %addtmp = fadd double
|
||||||
%calltmp, %calltmp1 ; [#uses=1] ret double %addtmp }
|
%calltmp, %calltmp1 ; <double> [#uses=1] ret double %addtmp }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -547,7 +547,7 @@ control flow to actually make recursion useful :).
|
||||||
@cos(double)
|
@cos(double)
|
||||||
|
|
||||||
ready> cos(1.234) Read a top-level expression: define double @1() {
|
ready> cos(1.234) Read a top-level expression: define double @1() {
|
||||||
entry: %calltmp = call double @cos(double 1.234000e+00) ; [#uses=1] ret
|
entry: %calltmp = call double @cos(double 1.234000e+00) ; <double> [#uses=1] ret
|
||||||
double %calltmp }
|
double %calltmp }
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -562,21 +562,21 @@ This shows an extern for the libm "cos" function, and a call to it.
|
||||||
define double @0() { entry: ret double 9.000000e+00 }
|
define double @0() { entry: ret double 9.000000e+00 }
|
||||||
|
|
||||||
define double @foo(double %a, double %b) { entry: %multmp = fmul double
|
define double @foo(double %a, double %b) { entry: %multmp = fmul double
|
||||||
%a, %a ; [#uses=1] %multmp1 = fmul double 2.000000e+00, %a ; [#uses=1]
|
%a, %a ; <double> [#uses=1] %multmp1 = fmul double 2.000000e+00, %a ; <double> [#uses=1]
|
||||||
%multmp2 = fmul double %multmp1, %b ; [#uses=1] %addtmp = fadd double
|
%multmp2 = fmul double %multmp1, %b ; <double> [#uses=1] %addtmp = fadd double
|
||||||
%multmp, %multmp2 ; [#uses=1] %multmp3 = fmul double %b, %b ; [#uses=1]
|
%multmp, %multmp2 ; <double> [#uses=1] %multmp3 = fmul double %b, %b ; <double> [#uses=1]
|
||||||
%addtmp4 = fadd double %addtmp, %multmp3 ; [#uses=1] ret double %addtmp4
|
%addtmp4 = fadd double %addtmp, %multmp3 ; <double> [#uses=1] ret double %addtmp4
|
||||||
}
|
}
|
||||||
|
|
||||||
define double @bar(double %a) { entry: %calltmp = call double
|
define double @bar(double %a) { entry: %calltmp = call double
|
||||||
@foo(double %a, double 4.000000e+00) ; [#uses=1] %calltmp1 = call double
|
@foo(double %a, double 4.000000e+00) ; <double> [#uses=1] %calltmp1 = call double
|
||||||
@bar(double 3.133700e+04) ; [#uses=1] %addtmp = fadd double %calltmp,
|
@bar(double 3.133700e+04) ; <double> [#uses=1] %addtmp = fadd double %calltmp,
|
||||||
%calltmp1 ; [#uses=1] ret double %addtmp }
|
%calltmp1 ; <double> [#uses=1] ret double %addtmp }
|
||||||
|
|
||||||
declare double @cos(double)
|
declare double @cos(double)
|
||||||
|
|
||||||
define double @1() { entry: %calltmp = call double @cos(double
|
define double @1() { entry: %calltmp = call double @cos(double
|
||||||
1.234000e+00) ; [#uses=1] ret double %calltmp }
|
1.234000e+00) ; <double> [#uses=1] ret double %calltmp }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,9 @@ slightly more complex example:
|
||||||
|
|
||||||
ready> def test(x) (1+2+x)\*(x+(1+2)) Read a
|
ready> def test(x) (1+2+x)\*(x+(1+2)) Read a
|
||||||
function definition: define double @test(double %x) { entry: %addtmp =
|
function definition: define double @test(double %x) { entry: %addtmp =
|
||||||
fadd double 3.000000e+00, %x ; [#uses=1] %addtmp1 = fadd double %x,
|
fadd double 3.000000e+00, %x ; <double> [#uses=1] %addtmp1 = fadd double %x,
|
||||||
3.000000e+00 ; [#uses=1] %multmp = fmul double %addtmp, %addtmp1 ;
|
3.000000e+00 ; <double> [#uses=1] %multmp = fmul double %addtmp, %addtmp1 ;
|
||||||
[#uses=1] ret double %multmp }
|
<double> [#uses=1] ret double %multmp }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -196,7 +196,7 @@ our test above again:
|
||||||
ready> def test(x) (1+2+x)\*(x+(1+2)) Read a
|
ready> def test(x) (1+2+x)\*(x+(1+2)) Read a
|
||||||
function definition: define double @test(double %x) { entry: %addtmp =
|
function definition: define double @test(double %x) { entry: %addtmp =
|
||||||
fadd double %x, 3.000000e+00 ; [#uses=2] %multmp = fmul double %addtmp,
|
fadd double %x, 3.000000e+00 ; [#uses=2] %multmp = fmul double %addtmp,
|
||||||
%addtmp ; [#uses=1] ret double %multmp }
|
%addtmp ; <double> [#uses=1] ret double %multmp }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -287,12 +287,12 @@ demonstrates very basic functionality, but can we do more?
|
||||||
|
|
||||||
ready> def testfunc(x y) x + y\*2 Read a function
|
ready> def testfunc(x y) x + y\*2 Read a function
|
||||||
definition: define double @testfunc(double %x, double %y) { entry:
|
definition: define double @testfunc(double %x, double %y) { entry:
|
||||||
%multmp = fmul double %y, 2.000000e+00 ; [#uses=1] %addtmp = fadd double
|
%multmp = fmul double %y, 2.000000e+00 ; <double> [#uses=1] %addtmp = fadd double
|
||||||
%multmp, %x ; [#uses=1] ret double %addtmp }
|
%multmp, %x ; <double> [#uses=1] ret double %addtmp }
|
||||||
|
|
||||||
ready> testfunc(4, 10) Read a top level expression: define double @0() {
|
ready> testfunc(4, 10) Read a top level expression: define double @0() {
|
||||||
entry: %calltmp = call double @testfunc(double 4.000000e+00, double
|
entry: %calltmp = call double @testfunc(double 4.000000e+00, double
|
||||||
1.000000e+01) ; [#uses=1] ret double %calltmp }
|
1.000000e+01) ; <double> [#uses=1] ret double %calltmp }
|
||||||
|
|
||||||
*Evaluated to: 24.0*
|
*Evaluated to: 24.0*
|
||||||
|
|
||||||
|
|
@ -324,12 +324,12 @@ anonymous functions, you should get the idea by now :) :
|
||||||
|
|
||||||
ready> def foo(x) sin(x)\ *sin(x) + cos(x)*\ cos(x) Read a function
|
ready> def foo(x) sin(x)\ *sin(x) + cos(x)*\ cos(x) Read a function
|
||||||
definition: define double @foo(double %x) { entry: %calltmp = call
|
definition: define double @foo(double %x) { entry: %calltmp = call
|
||||||
double @sin(double %x) ; [#uses=1] %calltmp1 = call double @sin(double
|
double @sin(double %x) ; <double> [#uses=1] %calltmp1 = call double @sin(double
|
||||||
%x) ; [#uses=1] %multmp = fmul double %calltmp, %calltmp1 ; [#uses=1]
|
%x) ; <double> [#uses=1] %multmp = fmul double %calltmp, %calltmp1 ; <double> [#uses=1]
|
||||||
%calltmp2 = call double @cos(double %x) ; [#uses=1] %calltmp3 = call
|
%calltmp2 = call double @cos(double %x) ; <double> [#uses=1] %calltmp3 = call
|
||||||
double @cos(double %x) ; [#uses=1] %multmp4 = fmul double %calltmp2,
|
double @cos(double %x) ; <double> [#uses=1] %multmp4 = fmul double %calltmp2,
|
||||||
%calltmp3 ; [#uses=1] %addtmp = fadd double %multmp, %multmp4 ;
|
%calltmp3 ; <double> [#uses=1] %addtmp = fadd double %multmp, %multmp4 ;
|
||||||
[#uses=1] ret double %addtmp }
|
<double> [#uses=1] ret double %addtmp }
|
||||||
|
|
||||||
ready> foo(4.0) *Evaluated to: 1.000000*
|
ready> foo(4.0) *Evaluated to: 1.000000*
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue