[PATCH] D46276: [CostModel][X86] Derive TTI costs from complete scheduling models (PR36550) (RFC)

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 9 06:16:46 PDT 2018


RKSimon added a subscriber: filcab.
RKSimon added a comment.

@craig.topper IIRC you were looking at ways to pull the X86InstrInfo.cpp folding tables into their own file and then later attempting to autogen the tables again - is that still the plan? These cost tables are likely to take a similar path.



================
Comment at: lib/Target/X86/X86TargetTransformInfo.cpp:658
+  static const SchedCostTblEntry AVX1CostTable[] = {
+    { ISD::FADD,  MVT::v4f64,   2, { X86::VADDPDYrr } },
+    { ISD::FADD,  MVT::v8f32,   2, { X86::VADDPSYrr } },
----------------
RKSimon wrote:
> craig.topper wrote:
> > craig.topper wrote:
> > > Is this going to cause a bunch of SmallVectors to be constructed at startup? I think that goes against our coding standards.
> > Or will it only happen the first time this function runs?
> Thanks for reminding me - first time only but using SmallVector was a quick fix to get around ArrayRef not working properly after the first time for some reason that I didn't investigate thoroughly. IIRC moving the tables out of the functions and into global namespace fixed the issue.
Update: I haven't found a way to avoid having to use SmallVector to create the code sequences, including if I move the tables into the global namespace - all approaches I've tried seem to have constexpr issues with initialization at compile time - mainly as the sequences appear as std::initializer_list - I'm open to suggestions........


Repository:
  rL LLVM

https://reviews.llvm.org/D46276





More information about the llvm-commits mailing list