Hi,<br><br>I hope this is the right place to ask it, sorry if I'm wrong...<br><br>My compiler is generating this code:<br><br>(line numbers included) (Please ignore the extra br label %b0 and the whole b0)<pre><span class="linenum">...<br>
54</span> <span class="keyword">define</span> <span class="type">i32</span> <span class="ident">@std_lang__rest</span>() {<br><span class="linenum"> 55</span> <span class="label">entry</span>:<br><span class="linenum"> 56</span> %ret = <span class="keyword">alloca</span> <span class="type">i32</span> <span class="comment">; <i32*> int*</span><br>
<span class="linenum"> 57</span> %0 = <span class="keyword">icmp</span> <span class="keyword">eq</span> <span class="type">i32</span> <span class="value">4</span>, <span class="value">5</span> <span class="comment">; <i1> boolean</span><br>
<span class="linenum"> 58</span> <span class="keyword">br</span> <span class="type">i1</span> %0, <span class="type">label</span> %<span class="label">b0_t</span>, <span class="type">label</span> %<span class="label">b0_f</span><br>
<span class="linenum"> 59</span> <span class="label">b0_t</span>:<br><span class="linenum"> 60</span> %1 = <span class="keyword">add</span> <span class="type">i32</span> <span class="value">5</span>, <span class="value">2</span> <span class="comment">; <i32> int</span><br>
<span class="linenum"> 61</span> <span class="keyword">store</span> <span class="type">i32</span> %1, <span class="type">i32</span>* %ret<br><span class="linenum"> 62</span> <span class="keyword">br</span> <span class="type">label</span> %<span class="label">return</span><br>
<span class="linenum"> 63</span> <span class="keyword">br</span> <span class="type">label</span> %<span class="label">b0</span><br><span class="linenum"> 64</span> <span class="label">b0_f</span>:<br><span class="linenum"> 65</span> <span class="keyword">store</span> <span class="type">i32</span> <span class="value">5</span>, <span class="type">i32</span>* %ret<br>
<span class="linenum"> 66</span> <span class="keyword">br</span> <span class="type">label</span> %<span class="label">return</span><br><span class="linenum"> 67</span> <span class="keyword">br</span> <span class="type">label</span> %<span class="label">b0</span><br>
<span class="linenum"> 68</span> <span class="label">b0</span>:<br><span class="linenum"> 69</span> <span class="keyword">store</span> <span class="type">i32</span> <span class="value">0</span>, <span class="type">i32</span>* %ret<br>
<span class="linenum"> 70</span> <span class="keyword">br</span> <span class="type">label</span> %<span class="label">return</span><br><span class="linenum"> 71</span> <span class="label">return</span>:<br><span class="linenum"> 72</span> %2 = <span class="keyword">load</span> <span class="type">i32</span>* %ret <span class="comment">; <i32> int</span><br>
<span class="linenum"> 73</span> <span class="keyword">ret</span> <span class="type">i32</span> %2<br><span class="linenum"> 74</span> }<br>...<br></pre><br><span style="font-family: courier new,monospace;">llvm-as std_lang.ll</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">llvm-as: std_lang.ll:72:5: error: instruction expected to be numbered '%4'</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> %2 = load i32* %ret ; <i32> int</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ^</span><br><br>Why %4 ??? what I did wrong?<br clear="all"><br>-- <br>Judison<br><a href="mailto:judison@gmail.com" target="_blank">judison@gmail.com</a><br><br>"O ignorante que procura se instruir é como um sábio; o sábio que fala sem discernimento se assemelha a um ignorante." Imam Ali (as)<br>