Eli,<br><br>   Ok, thanks, this is a big help. So how can I use the TargetData (or get the TargetData) without having a DAG?<br><br><div class="gmail_quote">On Thu, Dec 8, 2011 at 3:45 PM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Thu, Dec 8, 2011 at 3:29 PM, Ryan Taylor <<a href="mailto:ryta1203@gmail.com">ryta1203@gmail.com</a>> wrote:<br>

> Ok, thanks, this makes sense. But there is no way to get the SelectionDAG to<br>
> do it for me via something like visitGetElementrPtr?<br>
<br>
</div>SelectionDAGBuilder::visitGetElementPtr uses the same algorithm you<br>
want to use, but it is specialized for building a SelectionDAG, which<br>
is lower level than LLVM IR.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Eli<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
><br>
> On Thu, Dec 8, 2011 at 2:54 PM, Eli Friedman <<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>> wrote:<br>
>><br>
>> > On Thu, Dec 8, 2011 at 2:37 PM, Ryan Taylor <<a href="mailto:ryta1203@gmail.com">ryta1203@gmail.com</a>> wrote:<br>
>> >><br>
>> >> Thanks.<br>
>> >><br>
>> >> So basically then this operation is not target-independent like the<br>
>> >> docs<br>
>> >> suggest?<br>
>><br>
>> It is target-independent in the sense that a frontend can generate<br>
>> code using GEP's without worrying about how a given target actually<br>
>> lays out structures.  It isn't target-independent in the sense that<br>
>> the actual computed offset in bytes isn't the same for every target.<br>
>> See also<br>
>> <a href="http://nondot.org/sabre/LLVMNotes/SizeOf-OffsetOf-VariableSizedStructs.txt" target="_blank">http://nondot.org/sabre/LLVMNotes/SizeOf-OffsetOf-VariableSizedStructs.txt</a><br>
>> .<br>
>><br>
>> -Eli<br>
><br>
><br>
</div></div></blockquote></div><br>