<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 25, 2016 at 2:55 PM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>> You get the code you want with<br>
><br>
> @foo = external hidden global i8<br>
><br>
> or<br>
><br>
> @foo = external protected global i8<br>
<br>
</span>Sorry, not quiet. What you get is<br>
<br>
leaq    foo(%rip), %rax<br>
<br>
Since it is still assuming foo is a position in the file.<br>
<br>
So yes, we need a way to declare an absolute value. If we can declare<br>
it, we may as well use the same construct to define it.<br>
<br>
I guess the only issue then is that the current implementation of<br>
alias becomes even more needlessly generic :-(<br>
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br>So, to summarise the overall consensus on this thread:</div><div class="gmail_extra">- We should introduce a GlobalConstant class which supports definitions and declarations</div><div class="gmail_extra">- It should derive from GlobalValue</div><div class="gmail_extra">- No type changes for GlobalValue (i.e. still required to be pointer type)</div><div class="gmail_extra">- To communicate the range we should use !range metadata and support it on GlobalConstant as well as GlobalVariable</div><div class="gmail_extra"><br></div><div class="gmail_extra">Although I am not convinced that this is the right representation I appear to be in the minority here, so if this seems reasonable to folks I will go ahead and implement it.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra">-- <br><div class="m_-4349866687272885465m_-1567299394228916725m_-1926489945282801627gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-- <div>Peter</div></div></div>
</div></div>