From ae78961f163b67d397a7b3d1af653aa2c8e1ac5d Mon Sep 17 00:00:00 2001 From: YihanDu <418262458@qq.com> Date: Tue, 3 May 2016 10:23:03 +0800 Subject: [PATCH 1/3] gcc experiment1~3 --- experiments/gcc-1-hello-world/Makefile | 6 +++++ experiments/gcc-1-hello-world/Makefile~ | 0 experiments/gcc-1-hello-world/main | Bin 0 -> 8550 bytes experiments/gcc-2-multi-source/Makefile | 9 ++++++++ experiments/gcc-2-multi-source/calculator.c | 9 ++++++-- experiments/gcc-2-multi-source/calculator.c~ | 22 +++++++++++++++++++ experiments/gcc-2-multi-source/main | Bin 0 -> 8764 bytes experiments/gcc-2-multi-source/main.c | 5 ++++- experiments/gcc-2-multi-source/main.c~ | 15 +++++++++++++ experiments/gcc-3-real-project/calculator.c | 9 ++++++-- experiments/gcc-3-real-project/calculator.c~ | 22 +++++++++++++++++++ experiments/gcc-3-real-project/main | Bin 0 -> 8764 bytes experiments/gcc-3-real-project/main.c | 5 ++++- experiments/gcc-3-real-project/main.c~ | 17 ++++++++++++++ experiments/gcc-4-optimize/calculator.c | 9 ++++++-- experiments/gcc-4-optimize/release | Bin 0 -> 8804 bytes experiments/gcc-4-optimize/result | Bin 0 -> 9010 bytes 17 files changed, 120 insertions(+), 8 deletions(-) create mode 100644 experiments/gcc-1-hello-world/Makefile create mode 100644 experiments/gcc-1-hello-world/Makefile~ create mode 100755 experiments/gcc-1-hello-world/main create mode 100644 experiments/gcc-2-multi-source/Makefile create mode 100644 experiments/gcc-2-multi-source/calculator.c~ create mode 100755 experiments/gcc-2-multi-source/main create mode 100644 experiments/gcc-2-multi-source/main.c~ create mode 100644 experiments/gcc-3-real-project/calculator.c~ create mode 100755 experiments/gcc-3-real-project/main create mode 100644 experiments/gcc-3-real-project/main.c~ create mode 100755 experiments/gcc-4-optimize/release create mode 100755 experiments/gcc-4-optimize/result diff --git a/experiments/gcc-1-hello-world/Makefile b/experiments/gcc-1-hello-world/Makefile new file mode 100644 index 0000000..2e4bc12 --- /dev/null +++ b/experiments/gcc-1-hello-world/Makefile @@ -0,0 +1,6 @@ +main:main.o + gcc main.o -o main +main.o:main.c + gcc -c main.c +clean: + rm main *.o diff --git a/experiments/gcc-1-hello-world/Makefile~ b/experiments/gcc-1-hello-world/Makefile~ new file mode 100644 index 0000000..e69de29 diff --git a/experiments/gcc-1-hello-world/main b/experiments/gcc-1-hello-world/main new file mode 100755 index 0000000000000000000000000000000000000000..ab0a53d2face8d924d7435294ac020f02cbe9fab GIT binary patch literal 8550 zcmeHMYiwLc6`tMoE3fs&gs^!KFOVR&!nd~T8iy$Ku3xzuZ5}x5go--XYwtQ<*hjQ` zw@C^r7H%r7N?MTk;Z_3W2S54)ejp^U`X>&y8jwJ8Q7chVkX6MfNvV{Q5LuPlF#=+ATRDn6lnCphtc_YzQd9VO8FzwaZ;qKc8F` z6Yc3#ws^7qVsB4-Pq$XcXq=PDhSggz${qtyk%zM zsVtClnOs&OrZ^If^!1xvT9@_&ne*aD!6SbdcajsLxI49payu2j+B_yx)OXY#9D;!{ znWW)N?Z6@Az}3)_S#1v7X~&rPXOr<_{kE+kVO*ZK>Tex_xG}TXv|w8-KjB4I`9K}w z=2jgk;-@I{_Hr5Fz(-ralMA<(B>ykssp#AD;5$Evl-@jRl-@IDZr(i^i`$4E79 zTt6wvjdqY*zlGra$>!DpA?A+2(GjCv2Qg+={YGi!f_HRbjtV3P?~h)itnzYm>oj3= z#IgMKRUhPy((jDxcb+snOU9e4MJT^cg2v@PL)j?3Ve7xA^rsI$1%E|x`v^2|JqJfd z->4q~Sh8lx$pki)!@tC*`tK z7+sjunp>YI4`lm=&xA|m@aahDL3kumdOIA8UODhuQwUYK(oXbL^pTa$zZ%y+_EFE= z8igI>@(0#Fwh=AeiIyG=z(#q;yT;6d$2jBJYvFV7y|p$<@5Qud<2?}0uI8U>A@T0aL(gD!%;3%V7(P4kn2 z=hkWU$3k`<9cc$@}Ur+mc!~Tx2zpc+7>hlL7-{)_V_4)mEcTS;j&fR+P>G6oNJpa!;YsMAr7m*j`fL zy?`OP%KoQO@t;$4R+Z2AwBp%sE)Sc08JNd*L)K?Z$zz)(d5@C2tN7C@U%~%#!sl3b zK|59de_7EU*LYz0BmMnf3$=}m7qeC|)UEYu-R)gP$#p*0*{yYSYn_kSxL7CJ)!unf z$=WhqLTH6c87n>xYUOP@#i>-*O6JcCEt|8FTDULLZpF_j?p(I0jTcimjiwSpBW@~Q zm=apzQWo}XYUS;mXOj6sDwnNdOyuR0={PB<)cLd}v{W{Q*h*eRJP8JQxkTKG3oSWi zPUhp8q&byp&+!0TqcvuTHLz- zJ*D|ZV~fXiuU7|Gxo_e5CP73z4w?TF5;VqHKjziJRqiuFlB+~@m84A3`PQj#d3A|f z%HV#1hpyaPy2M4HLdiyo?Jfr!}#+qeO~uwmA)aZ+3Pa>7r6Cb0!Dt3e-xHg z`O8Y5*MB?L_Lb8_OZc4ng4Z84P;?S<1ioKk`V-_i^>wAMEBzl(rX#Q(L$4y?)aU=T zMb%)uzO%eC%dEJn^tt_)>UEj7r1TxvsS5S zA@?h)GR6JJ@H`T9<*B;MabIdnxaHmaA0gK4(C7d8pt?tO%e(o%K$qH|%cmO|3ZaM8 z{~Khfs;tldb9|4>_qD1y*2XW7gMUERSw7#>tx}~B-2O7p^nJ)U^@ZAJ@I_#Uv{H#! zk16$!Q@=y$cPIzhPqx5%%zuOgVO)Q@Mx&rBMYlYa{S!`MB})+7q4CXS z6VBmfE}sQehKrSUcKRFd-tfuw+mj+s_~Y!b*dWw zjNtXB8sCBSWXuW4v=65RUN4-PKCx5qI#7+{bini5k>SJXgXgUS#<<*tc{t{TWZEa( z|BCi}suLg5bgT;WpX&M9{X{TD2xFqlZ z#+7^gq^11&`IY|^J3m%-+~f0Sz(ebc6~6?&-5V6Wu5tT1;rOTL`OEu|KLDq8pl2Wo zNf`_A4)6fRzu~g;cO|d8#^H*Rch~nrB~R~56!?7q0C-3u)zM~j1o`i_vlDnNd3q0S zskQD+UI35w51Y}*shDYsL^7W|mnz_hYFZg{BAv@73!(;Onu(lwE}a{X zr_F?w%NNXe@uI-F?|eFGB@#EzMjc8MM9r&fu@$J0qcXI}g5RKBn3y7T?iOv)p%vf_Su zb;+6zQ?55zG-DxWPQ|kclxRjypuj{bYZePhRIlPJRZpNv0jlbmIE<^b{nmT*8FN^5 aZ+|*oD4=gm6BXiyq?&SPSJhLto%jz*z8}c| literal 0 HcmV?d00001 diff --git a/experiments/gcc-2-multi-source/Makefile b/experiments/gcc-2-multi-source/Makefile new file mode 100644 index 0000000..0531065 --- /dev/null +++ b/experiments/gcc-2-multi-source/Makefile @@ -0,0 +1,9 @@ +main:main.o calculator.o + gcc main.o calculator.o -o main +main.o:main.c + gcc -c main.c +calculator.o:calculator.c + gcc -c calculator.c + +clean: + rm main *.o diff --git a/experiments/gcc-2-multi-source/calculator.c b/experiments/gcc-2-multi-source/calculator.c index 391fc7f..979fdaa 100644 --- a/experiments/gcc-2-multi-source/calculator.c +++ b/experiments/gcc-2-multi-source/calculator.c @@ -1,5 +1,5 @@ #include "include/calculator.h" - +#include int sum(int x, int y) { return x + y; } @@ -13,5 +13,10 @@ int multiply(int x, int y) { } int divide(int x, int divisor) { - return x / divisor; + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; } diff --git a/experiments/gcc-2-multi-source/calculator.c~ b/experiments/gcc-2-multi-source/calculator.c~ new file mode 100644 index 0000000..979fdaa --- /dev/null +++ b/experiments/gcc-2-multi-source/calculator.c~ @@ -0,0 +1,22 @@ +#include "include/calculator.h" +#include +int sum(int x, int y) { + return x + y; +} + +int subtract(int x, int y) { + return x - y; +} + +int multiply(int x, int y) { + return x * y; +} + +int divide(int x, int divisor) { + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; +} diff --git a/experiments/gcc-2-multi-source/main b/experiments/gcc-2-multi-source/main new file mode 100755 index 0000000000000000000000000000000000000000..29b98f5d1e43b579986545e9d49d657ab08a7dee GIT binary patch literal 8764 zcmeHMZERcB89ui2MWK$(N^j`@44r- z@4ay+_G8k1^jJRcd7t;=yyx8WanC(Ji1lyr`+S0vUwlgtceGBIkev%L-6C0qb%|?) zE^ZQQL<5j|{BO1s{(l2o2;lq{$&3ryoSESR$0J+PxVKW_>t#oemDEA`8H)jp<*6&o_?;Z2{PELQp1kFT5ZUq{#m}9th31MH+7wSM{Dv#w>w#Az7kl%g>sCaA=5#pkYGT4Dm7xq_s{^Ng=hW`No&Jrfzc(3&>)*Uq6UL!g ztA1e*ER3m_o95WkrsX?ML8ZLzW#r9kb(Dx7BjMRIWu$d45>FwXotONtiKo!c&Px6l z#8XITkAv^{u&?yS{YL2>W9r@WyW)MPXLn%+7^hF3X&`d?V7)FDUV!3-(dMu~P9`p~+&A^`w{KDV~5|z(1ubm`phB($gxfp=HQ95Ou{NQfGH*dVL zScLJ5q-Y%agLPrhD7|9azoYCY?`lE3qS!J3%Y{b}$lxpWmzQb6_wgLH-lNIGHHIyH9D?e3HzLAt66es8@+o92< zN373QlrDT$E=$pCbJXh6!Aqs$A{vBd`Q`_gVCzqnJm{t7U&R(}Md~u!!PLP;Jc<*~ zp_+w9sfLp;oiCqjJRH09%%=wzUz-~}8oe)CDo5|_D_x8Z^p)O>#`}+~3pZ*Q0!P}2 z?&)9uUdNw}lb;1>#4pstiE-#d>!#+lk5Q9Ef9Zq%(#2l*D6jg9F*WBiHlHhgKojA+ zgVFCr2c!2#&AHLh2fr?mDjQ+&QPfjen0plxsRQn@@0IuAMl`Vt!RD(LfgKntL!L7VW5 z-Ue+2Jr8PtY8Z+%Lyv+U2c<;oGbP_cyM=Fm$hYRY#-^jb#t`AOCx07t+)4^6)z%l{ zX2?nZt$&rvyGS<}+7b+JYrgiurb%)4>N{_}{pPO_Ogfm(;zRhoNI*0gdfeZ$yutqw zYPRJ`z;kGmtc&G4rC8e26MF&j>z(%ZROLSh{!7SLI^{d6@|S^6LmqL;)3&@9*t_^2 zhdf2{?qKL?e=Hb&Di8~5N9tn1)+g(YVEf|@MzCwDaeGkD1iPZa_GqxRJE(OB!_e;z zHpzbdI{Nr6_@OC&HC^q2t37bF2mW7rU>Dx6D77mp8Dwf(sL<<_AY7-*(sISeu@zIg zQRZ~s8j__oipNqe(`rS-N>1xPC6<43xtt^Zm|rI%>Sd0&0=g{G`!J;$zfMFflX>+# zMdtuYVVj6AD9VK1v1G#QASGUlZLYfi(fc(eIww$?QS~!Et$2=`>!bac67$$Rr;lOjUgSfVf{BFO_;__L{%wmk@E|rfdfaB-&f#;!A zLbd~cS_{~I#;=2;bwd)d-zM@K54D}`!wSC_l-3Hi=k=#uEg%%1GkN>(eh6uON8p;;8@)2DjemHnK*7kc%*Jbk=q zcG&ZNA10?rUVShB7IY{?uAjc7P|`l9{oBx`vB&nj-|_d{dDVU%pIkqWgZE+Ute?Nf zEmEV9Sl{NVJmcpeaM}y?zQF^viwzZJJEj*r_Fc-pO9jYrvKzKz{+}oi#_gxiUz7}G z=+#%Htf+(@R{GtB z2>#q2Ue{=T)~f&2wYE3jhitAIKlA^I1`u7BUtgjUz-*1z!~?>riPu%$bDhotcLwCDQpRmmGaO%K0VE@ta= zmp;uA!q0o~sKUMHzWadt9C7me9F_Re{yd`m@HrB!OwSPoKVm|DRm}KLwoX^^X7F1J`6t?(DC?Tl`_6d;0AhaO$^$igT4R`v>Xc4TIMW ze*d|w^v@{$l+q8P!$TO)yFC6^0w@3ce#lX+R{Gw4`FZd3V%Y?E5Ahp z?*y)adXoX1+UxaC_r{u68GKgyudxn~^A%R_QXw7Bvbj+-gE&+ zX44usM>4r=svv4WrkTu{do#J=M8-^7xqQJ)6!#09LnksRE0v6F+Wd{%;kkyANhf0a zd~4#&nm-`y6LGRQK7Ifu4$h>5v`dxlN)hr%A~RCVBv7x6f6MOZ_Lv#l(TfJyt>LoE zK~k8#-`Nq}-q!;yheTe(3Uh1!&hBWxxpT{wJ+ZhMk9POR$ep~Y9VrxL+`{aOZ#S!* z6yM%MT@+6YXHtR=y!F*}=XI``k_Y!BZfKGzVSBZ&g*|%SJ7TZc zQJv@Z82w(znPZ7;5>XY3 + +int main(void) { + int x, y; + + x = 2; + y = 3; + + printf("%d + %d = %d\n", x, y, sum(2, 3)); + printf("%d - %d = %d\n", x, y, subtract(2, 3)); + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); + return 0; +} diff --git a/experiments/gcc-3-real-project/calculator.c b/experiments/gcc-3-real-project/calculator.c index 391fc7f..979fdaa 100644 --- a/experiments/gcc-3-real-project/calculator.c +++ b/experiments/gcc-3-real-project/calculator.c @@ -1,5 +1,5 @@ #include "include/calculator.h" - +#include int sum(int x, int y) { return x + y; } @@ -13,5 +13,10 @@ int multiply(int x, int y) { } int divide(int x, int divisor) { - return x / divisor; + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; } diff --git a/experiments/gcc-3-real-project/calculator.c~ b/experiments/gcc-3-real-project/calculator.c~ new file mode 100644 index 0000000..6742d36 --- /dev/null +++ b/experiments/gcc-3-real-project/calculator.c~ @@ -0,0 +1,22 @@ +#include "include/calculator.h" + +int sum(int x, int y) { + return x + y; +} + +int subtract(int x, int y) { + return x - y; +} + +int multiply(int x, int y) { + return x * y; +} + +int divide(int x, int divisor) { + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; +} diff --git a/experiments/gcc-3-real-project/main b/experiments/gcc-3-real-project/main new file mode 100755 index 0000000000000000000000000000000000000000..baa84efd07f5026a8a1159ca5b2630dfae7ce1ee GIT binary patch literal 8764 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 literal 0 HcmV?d00001 diff --git a/experiments/gcc-3-real-project/main.c b/experiments/gcc-3-real-project/main.c index 6798996..cf88d70 100644 --- a/experiments/gcc-3-real-project/main.c +++ b/experiments/gcc-3-real-project/main.c @@ -8,7 +8,10 @@ int main(void) { x = 2; y = 3; + printf("%d + %d = %d\n", x, y, sum(2, 3)); printf("%d - %d = %d\n", x, y, subtract(2, 3)); - + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); return 0; } diff --git a/experiments/gcc-3-real-project/main.c~ b/experiments/gcc-3-real-project/main.c~ new file mode 100644 index 0000000..134313a --- /dev/null +++ b/experiments/gcc-3-real-project/main.c~ @@ -0,0 +1,17 @@ +#include + +#include "include/calculator.h" + +int main(void) { + int x, y; + + x = 2; + y = 3; + + printf("%d + %d = %d\n", x, y, sum(2, 3)); + printf("%d - %d = %d\n", x, y, subtract(2, 3)); + printf("%d * %d = %d\n", x, y, multiply(2, 3)); + printf("%d / %d = %d\n", x, y, divide(2, 3)); + printf("1 / 0 = %d\n", divide(1, 0)); + return 0; +} diff --git a/experiments/gcc-4-optimize/calculator.c b/experiments/gcc-4-optimize/calculator.c index 391fc7f..979fdaa 100644 --- a/experiments/gcc-4-optimize/calculator.c +++ b/experiments/gcc-4-optimize/calculator.c @@ -1,5 +1,5 @@ #include "include/calculator.h" - +#include int sum(int x, int y) { return x + y; } @@ -13,5 +13,10 @@ int multiply(int x, int y) { } int divide(int x, int divisor) { - return x / divisor; + if(divisor==0) + { + printf("Divisor cannot be 0!\n"); + return -999999; + } + else return x / divisor; } diff --git a/experiments/gcc-4-optimize/release b/experiments/gcc-4-optimize/release new file mode 100755 index 0000000000000000000000000000000000000000..7a9a0a93e8e8f191aedefbc7f70bd9fecc518e81 GIT binary patch literal 8804 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 AA^-pY literal 0 HcmV?d00001 diff --git a/experiments/gcc-4-optimize/result b/experiments/gcc-4-optimize/result new file mode 100755 index 0000000000000000000000000000000000000000..d6df74003e307606027d92e27d1860aff85f8e35 GIT binary patch literal 9010 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

Date: Wed, 25 May 2016 23:47:41 +0800 Subject: [PATCH 2/3] =?UTF-8?q?shell=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assignments/shell/TraverseDir/README.md | 3 +++ assignments/shell/TraverseDir/README.md~ | 3 +++ assignments/shell/TraverseDir/TraverseDir.sh | 15 +++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 assignments/shell/TraverseDir/README.md create mode 100644 assignments/shell/TraverseDir/README.md~ create mode 100755 assignments/shell/TraverseDir/TraverseDir.sh diff --git a/assignments/shell/TraverseDir/README.md b/assignments/shell/TraverseDir/README.md new file mode 100644 index 0000000..45e8d09 --- /dev/null +++ b/assignments/shell/TraverseDir/README.md @@ -0,0 +1,3 @@ +杜伊涵 22920142203807 +shell作业: +写一个shell脚本TraverseDir.sh遍历输出当前目录及其子目录下的所有文件和目录。 diff --git a/assignments/shell/TraverseDir/README.md~ b/assignments/shell/TraverseDir/README.md~ new file mode 100644 index 0000000..1349165 --- /dev/null +++ b/assignments/shell/TraverseDir/README.md~ @@ -0,0 +1,3 @@ +杜伊涵 22920142203807 +shell作业: +写一个shell脚本TraverseDir.sh遍历当前目录及其子目录下的所有文件和目录。 diff --git a/assignments/shell/TraverseDir/TraverseDir.sh b/assignments/shell/TraverseDir/TraverseDir.sh new file mode 100755 index 0000000..386a8ad --- /dev/null +++ b/assignments/shell/TraverseDir/TraverseDir.sh @@ -0,0 +1,15 @@ +#!/bin/bash +function traverse_dir() +{ + for file in $1/* + do + if [ -d $file ] + then + traverse_dir $file + else + echo $file + fi + done +} +traverse_dir $PWD + From bc7a0b59ddceb6c3ace58b960a63678fa3176631 Mon Sep 17 00:00:00 2001 From: YihanDu <418262458@qq.com> Date: Fri, 27 May 2016 14:18:09 +0800 Subject: [PATCH 3/3] test branch --- a | 0 experiments/gcc-1-hello-world/{main => mian} | Bin .../gcc-3-real-project/include/calculator.h | 4 -- .../gcc-3-real-project/include/calculator.h~ | 9 ++++ experiments/gcc-4-optimize/include/array.h | 4 +- experiments/gcc-4-optimize/include/array.h~ | 9 ++++ experiments/gcc-4-optimize/release | Bin 8804 -> 0 bytes experiments/gcc-4-optimize/result | Bin 9010 -> 0 bytes final-test/c_cpp/Makefile | 9 ++++ final-test/c_cpp/Makefile~ | 10 ++++ final-test/c_cpp/my_stack.c | 37 ++++++++++++++- final-test/c_cpp/my_stack.c~ | 43 ++++++++++++++++++ 12 files changed, 117 insertions(+), 8 deletions(-) create mode 100644 a rename experiments/gcc-1-hello-world/{main => mian} (100%) create mode 100644 experiments/gcc-3-real-project/include/calculator.h~ create mode 100644 experiments/gcc-4-optimize/include/array.h~ delete mode 100755 experiments/gcc-4-optimize/release delete mode 100755 experiments/gcc-4-optimize/result create mode 100644 final-test/c_cpp/Makefile~ create mode 100644 final-test/c_cpp/my_stack.c~ diff --git a/a b/a new file mode 100644 index 0000000..e69de29 diff --git a/experiments/gcc-1-hello-world/main b/experiments/gcc-1-hello-world/mian similarity index 100% rename from experiments/gcc-1-hello-world/main rename to experiments/gcc-1-hello-world/mian diff --git a/experiments/gcc-3-real-project/include/calculator.h b/experiments/gcc-3-real-project/include/calculator.h index a5e00e3..2059a48 100644 --- a/experiments/gcc-3-real-project/include/calculator.h +++ b/experiments/gcc-3-real-project/include/calculator.h @@ -1,9 +1,5 @@ -#ifndef _CALC_H -#define _CALC_H - int sum(int x, int y); int subtract(int x, int y); int multiply(int x, int y); int divide(int x, int divisor); -#endif //_CALC_H diff --git a/experiments/gcc-3-real-project/include/calculator.h~ b/experiments/gcc-3-real-project/include/calculator.h~ new file mode 100644 index 0000000..a5e00e3 --- /dev/null +++ b/experiments/gcc-3-real-project/include/calculator.h~ @@ -0,0 +1,9 @@ +#ifndef _CALC_H +#define _CALC_H + +int sum(int x, int y); +int subtract(int x, int y); +int multiply(int x, int y); +int divide(int x, int divisor); + +#endif //_CALC_H diff --git a/experiments/gcc-4-optimize/include/array.h b/experiments/gcc-4-optimize/include/array.h index 3f079f4..bef1e29 100644 --- a/experiments/gcc-4-optimize/include/array.h +++ b/experiments/gcc-4-optimize/include/array.h @@ -1,9 +1,7 @@ -#ifndef _ARRAY_H -#define _ARRAY_H + void array_fill_with(int *array, int length, int fillWith); void array_print(int *array, int length); void array_add(int *arrayX, int *arrayY, int *arrayZ, int length); -#endif diff --git a/experiments/gcc-4-optimize/include/array.h~ b/experiments/gcc-4-optimize/include/array.h~ new file mode 100644 index 0000000..3f079f4 --- /dev/null +++ b/experiments/gcc-4-optimize/include/array.h~ @@ -0,0 +1,9 @@ +#ifndef _ARRAY_H +#define _ARRAY_H + +void array_fill_with(int *array, int length, int fillWith); +void array_print(int *array, int length); + +void array_add(int *arrayX, int *arrayY, int *arrayZ, int length); + +#endif diff --git a/experiments/gcc-4-optimize/release b/experiments/gcc-4-optimize/release deleted file mode 100755 index 7a9a0a93e8e8f191aedefbc7f70bd9fecc518e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8804 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 AA^-pY diff --git a/experiments/gcc-4-optimize/result b/experiments/gcc-4-optimize/result deleted file mode 100755 index d6df74003e307606027d92e27d1860aff85f8e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9010 zcmeHMeQaCR6~DHVCh3Rcmcjys*4r8>?G%%gQc^yjlem4UlD4D?Fpc!Zv7N@laUy>} z%i6A62*V12f`(M4X+zVbu?ew?!Io7UO&in>G^B#Mtr8$bsGx+FsgzP82zbA9-#zy8 zizA^)`)A@>e&?Rw`MBracR${}_lJSjO-_eHaB_;<1##X|O+w~Vh{H=ItFQ)9AvCd4 ztPl%;l;W>R2~ji0bVj*mTCVh5pe6V>I8C6zsmTn}YfV@%}nJiP( zL;_?-v3lH+1?`p@rn-t_yP|AIEZNm4yBcN3^ppyWDc6tcM*j}wufwTwQpZWmFC;qVTAxAPYIQz-# z4LjQ&iMo6zJ|$cJBm0#TmAkBnHg$_)IK@*8UpWt6Jr8~pa4-II651(5&9XrZrc+6J zg!+OB5sD3j?h}KFXgt*`41=_cWGa|Q8U4X%9LTQzfw)2pvAMOSvB_BHTj#qG1vqm* zY9sogU#o)C*F@2CoMMyWXDYj8j{1hRe^hx)ybL(mbMjj7+)#k9#)8v(<5XwCxi6Be z!Gc@It7gHi@#sV6%k`1c$Re-MhsRT;Q%N|{hh8b4;F3(5y|EoC+3F5FD_3dA5#L9` z>B%fo^%ml(O4Fw#-$*=FWqMrlHxo})m_97|b;MKX)6YnLE%6lc^g;0TAGT!P*r{jU z)rZbr*xu1{a{O?)CiIiXG)Yb_S)hrjKSA+QZ{@0HA;t_;uv4$S2Sgv5aqF4)9&mO| zjKQC**rl$cB+5=!t~x;27;&tBY{mtBJ#$Mjwj~)FR z+I);&?bMC1lNEY(LI$1LHm)H9uDGHs{X#TL7ZGk7HNce_v}QhN&0KDVkL>cd^`QxezVTf80~+|>>+;|0 z@AB{T8xy_xGC#(AAm<7-H8?QWQR;~HN4)7|Bz&{Cy1vf0v6mW$llHh)9j*|~(fgyx zfrK{{jK>F3-kylJ?wh3ISmC;bW{}1BKlgby`y%MI2$X7BfkuBD^kq=$S+k(mq6@~* z0dEDJ0KFIVU!Z$IKLq_bsK9Xg3+Sz&Z-YJux*DOCt2}DTn}Ib$eh=gkk~g|N zk2?eIs>fUbw|BH8;I4VJRCm`syg+w143)LHwV1oX@2>N^YZ~3&Mt2qT8{Osdy*&y) z2jIu-apdgl^mPmTf3?7*+V_ns%C$q+mx(FOm6RSS(Ij0WpF+HdWrNby@=5!xZkb!5 zcuYAmU887~lG8jziRGVsnH?bhkW(X)+w*n1OrF0T$DAh5(|tR1Dbe>nr7Dw%D-~su z`-Y{D9V8yp2PK!Er|J8c(l<;ZW>oo%Pb!|{=JM3`EmuC41zDeQrH|!6@($(qg5qCL zas~g-3GZX=1)Wgu^`DBqujpk(7pVSmm93w!pUq88H+yS3d(!b#+PmJ@;9Fn2E-ktG z{q^g8b?bfgYfN0sQC(MCzftL$I_re+CHM5Ff<2(Agh~52hb>ejF(`ak(<45AV@qu+ zxJz-n;%Q$`I*MItG%S3?^#zlC!WZ5Xhd-015~k$-NFo^>h!-#hWQj;DNCql57)uFX zG#71@nvFBr%M!ogHf_#%BqZz9+qG5W%=WzMuPf{8?Mk7>dA?}wlU@4^0P2t^OT zAs#+iis`W@nH0XzK!1NEp5oU1?T}%R8=M-r{5cGdLkZ%+{ge4`BSU?k?K_+r zxcoVXS91ABNj@uc^>|wCQ%+6dDdljr=3bfV&h|X6?*c}12ite6@!G8>6rO*Sn>p>b69O9hY|rEU z1!b>}nR4?T>oL6#_B59;Kd#CjSN2|2@B&b4{0bHiB13J;_LItfQrUAo?d`|-LpFP! z4`-A;&!1#ZYlOZ19s@>kQGAqm{dh#ZXkHggsTnKhiDvM(+84dN{cnoDcptXb^7(vihAM@` z`X-m>89xVs)n2IY4?e)t*-%loV|vMEuPb|91;}x-8@6NqGh_(k`qS|frF)d2UEkIn zL>9V))sc}UvHdm+Mp?FJO4kTnwpH~vTs|u*p^cUPc(mEl11&B{*WrIX{#+lP zzo?rRE5FYR0n%$W=l1eVt>RA?qHAz!bA&F;w!BVSg)T(G>t7*WlKbv0#7nVGX;w() zUFgx>u3~tZ;Pu67Rf6Y%LL9pW z9^V#$3%ddyw-y+^;cAS-ZYw17E@594&2d#CKBD1RkZ8?y;IzUXKMfD3SR%Ho^^T2v z3O``O{R$tq;dI91u*B(5j(R0Nw>?LdpGljar=|Yf_c8{&SiO$UgP)uSr?`swISt$) zmI`f=hFm_qi)^uWBaLEy{w+XoA1OaqD5HZCw|X%1zXI-oAA7(3 z?L7K)CQANGRK2MGQJRqW+0E)CAQnzzZy8j zc~Z5*a%HxL^zjA5^Adkw(H#Zp)3p$#hq#pLJs0!>2l zOcuGY@?&r3LFI?;p(x2SUeL6{-%|0*vsK{xfqOyi=}DzOsPt)^Q~CvPY9D*KznjO; zE7DJqbs>~UB~xjfciVHhGDNkn!k-4eX&4dxW_|52yS4_rS!$ z8MLu4P^H^gge-UNprK$al#T^azO2Wlc7I#I2yAUeMa)`pzQ9pf7|q|^>Thdlf|f-h zFMNfuxpiBkztz~bY158Chtc70Yz>e*c_$o7re*wmaja?9yI>iX5e%b%mX0cGbn*eay6$H}J4TgYkQ$mgEjt(2nxeiT?n=g4?