Skip to content
  1. Jan 25, 2018
    • Craig Topper's avatar
      066e7376
    • Craig Topper's avatar
      [X86] Remove 64/128/256 from MMX/SSE/AVX instruction names for overall consistency. NFC · dbddac09
      Craig Topper authored
      MMX instrutions all start with MMX_ so the 64 isn't needed for disambigutation.
      SSE/AVX1 instructions are assumed 128-bit so we don't need to say 128.
      AVX2 instructions should use a Y to indicate 256-bits.
      
      llvm-svn: 323402
      dbddac09
    • Craig Topper's avatar
      [X86] Remove unnecessary '_alt' and '_Int' from scheduler model regular expressions. · 81c87092
      Craig Topper authored
      These were treated as optional suffixes, but the regular expressions are already prefix matches so this is unnecessary. It breaks the binary search optimization in tablegen due to the top level question mark.
      
      llvm-svn: 323401
      81c87092
    • Aditya Nandakumar's avatar
      Add support for pattern matching MachineInsts. · 2036f446
      Aditya Nandakumar authored
      https://reviews.llvm.org/D42439
      
      Add Instcombine like matchers for MachineInstructions. There are only
      globalISel matchers for now.
      
      llvm-svn: 323400
      2036f446
    • Lang Hames's avatar
      [ORC] Refactor the various lookupFlags methods to return the flags map via the · c8a74a04
      Lang Hames authored
      first argument.
      
      This makes lookupFlags more consistent with lookup (which takes the query as the
      first argument) and composes better in practice, since lookups are usually
      linearly chained: Each lookupFlags can populate the result map based on the
      symbols not found in the previous lookup. (If the maps were returned rather than
      passed by reference there would have to be a merge step at the end).
      
      llvm-svn: 323398
      c8a74a04
    • Aditya Nandakumar's avatar
      [GISel]: Fix modules build by including <cassert> · 7cff1908
      Aditya Nandakumar authored
      llvm-svn: 323394
      7cff1908
    • Lang Hames's avatar
    • Aditya Nandakumar's avatar
      [GISel]: Implement GlobalISel combiner API. · 81c81b64
      Aditya Nandakumar authored
      https://reviews.llvm.org/D41373
      
      The various components are
      
      GICombinerHelper contains transformations that are common to all
      targets. Targets can pick and choose which transformations (at
      function/opcode granularity) each pass uses via configuring a
      GICombinerInfo.
      
      GICombiner contains some common code and it does the traversal,
      driving of combines, worklist management and iterating until
      convergence.
      
      GICombinerInfo is an interface with a virtual method called combine.
      The combiner info will allow targets to pick and choose (or
      implement their own specific combines). CombineInfos can make
      use of available combines in GICombineHelper to configure the
      transformations for a particular pass. Currently this approach allows
      cherry picking transformations from helpers (at function/opcode
      granularity) and also allows early returning on specific
      transformations. Targets also get to prioritize whether target specific
      combines run before/after the opt-in generic combines. Ideally we would
      like this part to be configured by both C++ and Tablegen. The
      CombinerInfo also has a field which indicates how to deal with
      IllegalOps (ie - should we allow to create them/or legalize them?).
      
      A CombinerPass would configure a CombinerInfo, create the GICombiner
      with the Info, and call
      GICombiner::combineMachineInstrs(MachineFunction&).
      This organization is very similar to the GISelLegalizer.
      
      llvm-svn: 323392
      81c81b64
    • Volkan Keles's avatar
      [GlobalISel][TableGen] Fix the statistics for emitted patters · 4f3fa798
      Volkan Keles authored
      Collected statistics for the number of patterns emitted can be
      incorrect because rules can be grouped if OptimizeMatchTable
      is enabled. Increase the counter in RuleMatcher::emit(...)
      to avoid that.
      
      llvm-svn: 323391
      4f3fa798
    • Lang Hames's avatar
      [ORC] Add helpers for building orc::SymbolResolvers from legacy findSymbol-style · d78ba0d4
      Lang Hames authored
      functions/methods that return JITSymbols.
      
      lookupFlagsWithLegacyFn takes a SymbolNameSet and a legacy lookup function and
      returns a LookupFlagsResult. It uses the legacy lookup function to search for
      each symbol. If found, getFlags is called on the symbol and the flags added to
      the SymbolFlags map. If not found, the symbol is added to the SymbolsNotFound
      set.
      
      lookupWithLegacyFn takes an AsynchronousSymbolQuery, a SymbolNameSet and a
      legacy lookup function. Each symbol in the SymbolNameSet is searched for via the
      legacy lookup function. If it is found, its getAddress function is called
      (triggering materialization if it has not happened already) and the resulting
      mapping stored in the query. If it is not found the symbol is added to the
      unresolved symbols set which is returned at the end of the function. If an
      error occurs during legacy lookup or materialization it is passed to the
      query via setFailed and the function returns immediately.
      
      llvm-svn: 323388
      d78ba0d4
  2. Jan 24, 2018
Loading