<div dir="ltr">OK. I will give follow-up soon.<div><br></div><div>Is there be any objection if I move GlobalMerge pass to CodeGen?<br><div><br></div><div>Thanks,</div><div>-Jiangning</div></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2014-06-12 3:03 GMT+08:00 Rafael EspĂ­ndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">> I think we're mixing concepts up here. Sorry I didn't jump on the earlier<br>
> review thread.<br>
><br>
> The key is that we *really must not* add more passes to lib/Transforms which<br>
> accept a TargetMachine. We can still have plenty of IR-operating passes in<br>
> lib/CodeGen that take a TargetMachine, that's fine. If you want to have a<br>
> macro to automate it, put it in include/llvm/CodeGen/CodeGenPassSupport.h or<br>
> some other *clearly* backend header file so that it is really obvious that<br>
> it should not be used in purportedly target-independent passes.<br>
><br>
> TargetTransformInfo is a generic interface by which a target can expose<br>
> information to a lib/Transform pass. This allows truly target independent<br>
> passes to be tested without even having a target around because the<br>
> interface they use to communicate with the target is very nicely abstracted.<br>
> But there are plenty of passes which really aren't that target independent,<br>
> and those should just stay in lib/CodeGen.<br>
><br>
> AFAIK, CodeGenPrep is the only pass that violates these principles today. I<br>
> think it should just be moved to lib/CodeGen personally, but haven't worked<br>
> with it enough to really tell whether it should instead be reduced to use a<br>
> easily abstracted interface like TargetTransformInfo.<br>
<br>
</div>OK, that makes sense.<br>
<br>
Jiangning, can you move the macro to some header in<br>
include/llvm/CodeGen and figure out if GlobalMerge.cpp should move to<br>
lib/CodeGen or be implemented on top of TargetTransformInfo?<br>
<br>
Thanks,<br>
<div class="HOEnZb"><div class="h5">Rafael<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>