Skip to content
  1. Apr 11, 2013
  2. Apr 05, 2013
  3. Apr 04, 2013
  4. Apr 03, 2013
    • Rafael Espindola's avatar
      Remove anonymous namespace. · aff60814
      Rafael Espindola authored
      Looks like the gcc in http://lab.llvm.org:8011/builders/clang-x86_64-darwin11-self-mingw32/ doesn't like "not external linkage":
      
      /Volumes/Macintosh_HD2/buildbots/clang-x86_64-darwin11-self-mingw32/llvm.src/include/llvm/Support/YAMLTraits.h: In instantiation of 'const bool llvm::yaml::has_SequenceMethodTraits<std::vector<<unnamed>::COFFYAML::Relocation, std::allocator<<unnamed>::COFFYAML::Relocation> > >::value':
      /Volumes/Macintosh_HD2/buildbots/clang-x86_64-darwin11-self-mingw32/llvm.src/include/llvm/Support/YAMLTraits.h:281:   instantiated from 'llvm::yaml::has_SequenceTraits<std::vector<<unnamed>::COFFYAML::Relocation, std::allocator<<unnamed>::COFFYAML::Relocation> > >'
      /Volumes/Macintosh_HD2/buildbots/clang-x86_64-darwin11-self-mingw32/llvm.src/utils/yaml2obj/yaml2obj.cpp:627:   instantiated from here
      /Volumes/Macintosh_HD2/buildbots/clang-x86_64-darwin11-self-mingw32/llvm.src/include/llvm/Support/YAMLTraits.h:243: error: 'llvm::yaml::SequenceTraits<std::vector<<unnamed>::COFFYAML::Relocation, std::allocator<<unnamed>::COFFYAML::Relocation> > >::size' is not a valid template argument for type 'size_t (*)(llvm::yaml::IO&, std::vector<<unnamed>::COFFYAML::Relocation, std::allocator<<unnamed>::COFFYAML::Relocation> >&)' because function 'static size_t llvm::yaml::SequenceTraits<std::vector<<unnamed>::COFFYAML::Relocation, std::allocator<<unnamed>::COFFYAML::Relocation> > >::size(llvm::yaml::IO&, std::vector<<unnamed>::COFFYAML::Relocation, std::allocator<<unnamed>::COFFYAML::Relocation> >&)' has not external linkage
      
      llvm-svn: 178600
      aff60814
    • Rafael Espindola's avatar
      Use yaml::IO in yaml2obj.cpp. · e1d9afa8
      Rafael Espindola authored
      The generic structs and specializations will be refactored when obj2yaml is
      changed to use yaml::IO.
      
      llvm-svn: 178593
      e1d9afa8
  5. Mar 29, 2013
  6. Mar 27, 2013
  7. Mar 26, 2013
  8. Mar 25, 2013
  9. Mar 24, 2013
  10. Mar 23, 2013
    • Jakob Stoklund Olesen's avatar
      Allow direct value types in pattern definitions. · d906b903
      Jakob Stoklund Olesen authored
      Just like register classes, value types can be used in two ways in
      patterns:
      
        (sext_inreg i32:$src, i16)
      
      In a named leaf node like i32:$src, the value type simply provides the
      type of the node directly. This simplifies type inference a lot compared
      to the current practice of specifiying types indirectly with register
      classes.
      
      As an unnamed leaf node, like i16 above, the value type represents
      itself as an MVT::Other immediate.
      
      llvm-svn: 177828
      d906b903
    • Jakob Stoklund Olesen's avatar
      Make all unnamed RegisterClass TreePatternNodes typed MVT::i32. · b5b9110b
      Jakob Stoklund Olesen authored
      A register class can appear as a leaf TreePatternNode with and without a
      name:
      
        (COPY_TO_REGCLASS GPR:$src, F8RC)
      
      In a named leaf node like GPR:$src, the register class provides type
      information for the named variable represented by the node. The TypeSet
      for such a node is the set of value types that the register class can
      represent.
      
      In an unnamed leaf node like F8RC above, the register class represents
      itself as a kind of immediate. Such a node has the type MVT::i32,
      we'll never create a virtual register representing it.
      
      This change makes it possible to remove the special handling of
      COPY_TO_REGCLASS in CodeGenDAGPatterns.cpp.
      
      llvm-svn: 177825
      b5b9110b
    • Benjamin Kramer's avatar
      Plug a memory leak in FileCheck when the input file is empty. · e963d660
      Benjamin Kramer authored
      llvm-svn: 177822
      e963d660
  11. Mar 22, 2013
    • Sean Silva's avatar
      Add TableGen ctags(1) emitter and helper script. · cdd21b33
      Sean Silva authored
      To use this in conjunction with exuberant ctags to generate a single
      combined tags file, run tblgen first and then
        $ ctags --append [...]
      
      Since some identifiers have corresponding definitions in C++ code,
      it can be useful (if using vim) to also use cscope, and
        :set cscopetagorder=1
      so that
        :tag X
      will preferentially select the tablegen symbol, while
        :cscope find g X
      will always find the C++ symbol.
      
      Patch by Kevin Schoedel!
      
      (a couple small formatting changes courtesy of clang-format)
      
      llvm-svn: 177682
      cdd21b33
  12. Mar 21, 2013
  13. Mar 19, 2013
    • Ulrich Weigand's avatar
      Extend TableGen instruction selection matcher to improve handling · e618abd6
      Ulrich Weigand authored
      of complex instruction operands (e.g. address modes).
      
      Currently, if a Pat pattern creates an instruction that has a complex
      operand (i.e. one that consists of multiple sub-operands at the MI
      level), this operand must match a ComplexPattern DAG pattern with the
      correct number of output operands.
      
      This commit extends TableGen to alternatively allow match a complex
      operands against multiple separate operands at the DAG level.
      
      This allows using Pat patterns to match pre-increment nodes like
      pre_store (which must have separate operands at the DAG level) onto
      an instruction pattern that uses a multi-operand memory operand,
      like the following example on PowerPC (will be committed as a
      follow-on patch):
      
        def STWU  : DForm_1<37, (outs ptr_rc:$ea_res), (ins GPRC:$rS, memri:$dst),
                          "stwu $rS, $dst", LdStStoreUpd, []>,
                          RegConstraint<"$dst.reg = $ea_res">, NoEncode<"$ea_res">;
      
        def : Pat<(pre_store GPRC:$rS, ptr_rc:$ptrreg, iaddroff:$ptroff),
                  (STWU GPRC:$rS, iaddroff:$ptroff, ptr_rc:$ptrreg)>;
      
      Here, the pair of "ptroff" and "ptrreg" operands is matched onto the
      complex operand "dst" of class "memri" in the "STWU" instruction.
      
      Approved by Jakob Stoklund Olesen.
      
      llvm-svn: 177428
      e618abd6
  14. Mar 18, 2013
    • Andrew Trick's avatar
      TableGen fix for the new machine model. · e7bac5f5
      Andrew Trick authored
      Properly handle cases where a group of instructions have different
      SchedRW lists with the same itinerary class.
      This was supposed to work, but I left in an early break.
      
      llvm-svn: 177317
      e7bac5f5
    • Jakob Stoklund Olesen's avatar
      Extract a method. · 57a86508
      Jakob Stoklund Olesen authored
      This computes the type of an instruction operand or result based on the
      records in the instruction's ins and outs lists.
      
      llvm-svn: 177244
      57a86508
  15. Mar 17, 2013
  16. Mar 16, 2013
    • Andrew Trick's avatar
      Machine model. Allow mixed itinerary classes and SchedRW lists. · bf8a28dc
      Andrew Trick authored
      We always supported a mixture of the old itinerary model and new
      per-operand model, but it required a level of indirection to map
      itinerary classes to SchedRW lists. This was done for ARM A9.
      
      Now we want to define x86 SchedRW lists, with the goal of removing its
      itinerary classes, but still support the itineraries in the mean
      time. When I original developed the model, Atom did not have
      itineraries, so there was no reason to expect this requirement.
      
      llvm-svn: 177226
      bf8a28dc
  17. Mar 15, 2013
  18. Mar 14, 2013
    • Andrew Trick's avatar
      Fix r177112: Add ProcResGroup. · a5c747b0
      Andrew Trick authored
      This is the other half of r177122 that I meant to commit at the same time.
      
      llvm-svn: 177123
      a5c747b0
    • Andrew Trick's avatar
      MachineModel: Add a ProcResGroup class. · 4e67cba8
      Andrew Trick authored
      This allows abitrary groups of processor resources. Using something in
      a subset automatically counts againts the superset. Currently, this
      only works if the superset is also a ProcResGroup as opposed to a
      SuperUnit.
      
      This allows SandyBridge to be expressed naturally, which will be
      checked in shortly.
      
      def SBPort01 : ProcResGroup<[SBPort0, SBPort1]>;
      def SBPort15 : ProcResGroup<[SBPort1, SBPort5]>;
      def SBPort23  : ProcResGroup<[SBPort2, SBPort3]>;
      def SBPort015 : ProcResGroup<[SBPort0, SBPort1, SBPort5]>;
      
      llvm-svn: 177112
      4e67cba8
  19. Mar 13, 2013
  20. Mar 11, 2013
  21. Mar 02, 2013
  22. Feb 28, 2013
  23. Feb 26, 2013
    • Michael J. Spencer's avatar
      [TableGen] Fix ICE on MSVC 2012 Release builds. · 2bb7db9d
      Michael J. Spencer authored
      llvm-svn: 176125
      2bb7db9d
    • Kostya Serebryany's avatar
      Unify clang/llvm attributes for asan/tsan/msan (LLVM part) · cf880b94
      Kostya Serebryany authored
      These are two related changes (one in llvm, one in clang).
      LLVM: 
      - rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
      - rename thread_safety => sanitize_thread
      - rename no_uninitialized_checks -> sanitize_memory
      
      CLANG: 
      - add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
      - add __attribute__((no_sanitize_thread))
      - add __attribute__((no_sanitize_memory))
      
      for S in address thread memory
      If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
      set llvm attribute sanitize_S
      
      llvm-svn: 176075
      cf880b94
  24. Feb 25, 2013
  25. Feb 14, 2013
Loading