<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The distinction between the LLVMTargetMachine and TargetMachine classes has become somewhat muddy recently. So I created:<div class=""><br class=""></div><div class=""><a href="https://reviews.llvm.org/D38482" class="">https://reviews.llvm.org/D38482</a></div><div class=""><br class=""></div><div class="">to clean things up. During review it was noted that we may rather merge the two instead which looks like this:</div><div class=""><br class=""></div><div class=""><a href="https://reviews.llvm.org/D38489" class="">https://reviews.llvm.org/D38489</a></div><div class=""><br class=""></div><div class="">We really should choose one of the two over the status quo. Some points for the discussion:</div><div class=""><br class=""></div><div class="">- I am not aware of any target that is actually implementing TargetMachine only but not LLVMTargetMachine (I assume the C backend used to do it before it was removed)</div><div class="">- Even when merging the two, I believe it is still possible to implement a target without linking to lib/CodeGen by returning nullptr for the various methods related to CodeGen.</div><div class="">- The split would give some notion of an internal CodeGen interface and an external interface visible to frontend/middleend etc.</div><div class="">- The code gets simpler when merging the two and we have to document/explain less.</div><div class=""><br class=""></div><div class="">- Matthias</div></body></html>