[llvm-commits] [llvm] r89187 - in /llvm/trunk: include/llvm/Target/TargetInstrInfo.h lib/CodeGen/BranchFolding.cpp lib/Target/ARM/ARMBaseInstrInfo.cpp lib/Target/ARM/ARMBaseInstrInfo.h lib/Target/ARM/ARMSubtarget.cpp lib/Target/ARM/ARMSubtarget.h

Chris Lattner sabre at nondot.org
Thu Nov 19 22:18:54 PST 2009


On Nov 19, 2009, at 4:17 PM, Evan Cheng wrote:

> 
> On Nov 19, 2009, at 9:35 AM, Chris Lattner wrote:
> 
>> Apologies for the last email being rambling, and in advance for this one also being rambling. :)
>> 
>> My basic perspective is that I want to sink as much logic into the target-independent code as possible and have the fewest number of target hooks reasonable.  This is for three reasons:
>> 
>> 1. Porting to a new target is easier with fewer target hooks, and they get better codegen 'out of the box' by specifying primitives instead of having to tweak tons of knobs.
> 
> That's an idealistic way of looking at it.

Yes of course.  As I said, it is the guiding principle.  Are you claiming that it is better to add target hooks that we don't *really need*?  I'm not saying we should have no target hooks, just that we should try hard to avoid them :)

> To me, the right way to implement this is actually having even more accurate machine model.

Yes.  I really don't like target hooks that "implement pieces of algorithms, like the tail dupe one does.  I'm not opposed to exposing more information about the architecture.

-Chris





More information about the llvm-commits mailing list