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:
|
||||
define double @foo(double %a, double %b) {
|
||||
entry:
|
||||
%multmp = fmul double %a, %a ; [#uses=1]
|
||||
%multmp1 = fmul double 2.000000e+00, %a ; [#uses=1]
|
||||
%multmp2 = fmul double %multmp1, %b ; [#uses=1]
|
||||
%addtmp = fadd double %multmp, %multmp2 ; [#uses=1]
|
||||
%multmp3 = fmul double %b, %b ; [#uses=1]
|
||||
%addtmp4 = fadd double %addtmp, %multmp3 ; [#uses=1]
|
||||
%multmp = fmul double %a, %a ; <double> [#uses=1]
|
||||
%multmp1 = fmul double 2.000000e+00, %a ; <double> [#uses=1]
|
||||
%multmp2 = fmul double %multmp1, %b ; <double> [#uses=1]
|
||||
%addtmp = fadd double %multmp, %multmp2 ; <double> [#uses=1]
|
||||
%multmp3 = fmul double %b, %b ; <double> [#uses=1]
|
||||
%addtmp4 = fadd double %addtmp, %multmp3 ; <double> [#uses=1]
|
||||
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
|
||||
function definition: define double @bar(double %a) { entry: %calltmp =
|
||||
call double @foo(double %a, double 4.000000e+00) ; [#uses=1] %calltmp1 =
|
||||
call double @bar(double 3.133700e+04) ; [#uses=1] %addtmp = fadd double
|
||||
%calltmp, %calltmp1 ; [#uses=1] ret double %addtmp }
|
||||
call double @foo(double %a, double 4.000000e+00) ; <double> [#uses=1] %calltmp1 =
|
||||
call double @bar(double 3.133700e+04) ; <double> [#uses=1] %addtmp = fadd double
|
||||
%calltmp, %calltmp1 ; <double> [#uses=1] ret double %addtmp }
|
||||
|
||||
|
||||
|
||||
|
|
@ -547,7 +547,7 @@ control flow to actually make recursion useful :).
|
|||
@cos(double)
|
||||
|
||||
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 }
|
||||
|
||||
|
||||
|
|
@ -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 @foo(double %a, double %b) { entry: %multmp = fmul double
|
||||
%a, %a ; [#uses=1] %multmp1 = fmul double 2.000000e+00, %a ; [#uses=1]
|
||||
%multmp2 = fmul double %multmp1, %b ; [#uses=1] %addtmp = fadd double
|
||||
%multmp, %multmp2 ; [#uses=1] %multmp3 = fmul double %b, %b ; [#uses=1]
|
||||
%addtmp4 = fadd double %addtmp, %multmp3 ; [#uses=1] ret double %addtmp4
|
||||
%a, %a ; <double> [#uses=1] %multmp1 = fmul double 2.000000e+00, %a ; <double> [#uses=1]
|
||||
%multmp2 = fmul double %multmp1, %b ; <double> [#uses=1] %addtmp = fadd double
|
||||
%multmp, %multmp2 ; <double> [#uses=1] %multmp3 = fmul double %b, %b ; <double> [#uses=1]
|
||||
%addtmp4 = fadd double %addtmp, %multmp3 ; <double> [#uses=1] ret double %addtmp4
|
||||
}
|
||||
|
||||
define double @bar(double %a) { entry: %calltmp = call double
|
||||
@foo(double %a, double 4.000000e+00) ; [#uses=1] %calltmp1 = call double
|
||||
@bar(double 3.133700e+04) ; [#uses=1] %addtmp = fadd double %calltmp,
|
||||
%calltmp1 ; [#uses=1] ret double %addtmp }
|
||||
@foo(double %a, double 4.000000e+00) ; <double> [#uses=1] %calltmp1 = call double
|
||||
@bar(double 3.133700e+04) ; <double> [#uses=1] %addtmp = fadd double %calltmp,
|
||||
%calltmp1 ; <double> [#uses=1] ret double %addtmp }
|
||||
|
||||
declare 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
|
||||
function definition: define double @test(double %x) { entry: %addtmp =
|
||||
fadd double 3.000000e+00, %x ; [#uses=1] %addtmp1 = fadd double %x,
|
||||
3.000000e+00 ; [#uses=1] %multmp = fmul double %addtmp, %addtmp1 ;
|
||||
[#uses=1] ret double %multmp }
|
||||
fadd double 3.000000e+00, %x ; <double> [#uses=1] %addtmp1 = fadd double %x,
|
||||
3.000000e+00 ; <double> [#uses=1] %multmp = fmul double %addtmp, %addtmp1 ;
|
||||
<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
|
||||
function definition: define double @test(double %x) { entry: %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
|
||||
definition: define double @testfunc(double %x, double %y) { entry:
|
||||
%multmp = fmul double %y, 2.000000e+00 ; [#uses=1] %addtmp = fadd double
|
||||
%multmp, %x ; [#uses=1] ret double %addtmp }
|
||||
%multmp = fmul double %y, 2.000000e+00 ; <double> [#uses=1] %addtmp = fadd double
|
||||
%multmp, %x ; <double> [#uses=1] ret double %addtmp }
|
||||
|
||||
ready> testfunc(4, 10) Read a top level expression: define double @0() {
|
||||
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*
|
||||
|
||||
|
|
@ -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
|
||||
definition: define double @foo(double %x) { entry: %calltmp = call
|
||||
double @sin(double %x) ; [#uses=1] %calltmp1 = call double @sin(double
|
||||
%x) ; [#uses=1] %multmp = fmul double %calltmp, %calltmp1 ; [#uses=1]
|
||||
%calltmp2 = call double @cos(double %x) ; [#uses=1] %calltmp3 = call
|
||||
double @cos(double %x) ; [#uses=1] %multmp4 = fmul double %calltmp2,
|
||||
%calltmp3 ; [#uses=1] %addtmp = fadd double %multmp, %multmp4 ;
|
||||
[#uses=1] ret double %addtmp }
|
||||
double @sin(double %x) ; <double> [#uses=1] %calltmp1 = call double @sin(double
|
||||
%x) ; <double> [#uses=1] %multmp = fmul double %calltmp, %calltmp1 ; <double> [#uses=1]
|
||||
%calltmp2 = call double @cos(double %x) ; <double> [#uses=1] %calltmp3 = call
|
||||
double @cos(double %x) ; <double> [#uses=1] %multmp4 = fmul double %calltmp2,
|
||||
%calltmp3 ; <double> [#uses=1] %addtmp = fadd double %multmp, %multmp4 ;
|
||||
<double> [#uses=1] ret double %addtmp }
|
||||
|
||||
ready> foo(4.0) *Evaluated to: 1.000000*
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue