Skip to content
  1. May 29, 2009
    • Evan Cheng's avatar
      More h-registers tricks: folding zext nodes. · 716e688f
      Evan Cheng authored
      llvm-svn: 72558
      716e688f
    • Evan Cheng's avatar
      Do not try to create a MVT type of width 0. · 86cdb4b3
      Evan Cheng authored
      llvm-svn: 72557
      86cdb4b3
    • Bill Wendling's avatar
      The MONITOR and MWAIT instructions have insufficient information for · 2e09bd3d
      Bill Wendling authored
      decoding. Essentially, they both map to the same column in the "opcode
      extensions for one- and two-byte opcodes" table in the x86 manual. The RawFrm
      complicates decoding this.
      
      Instead, use opcode 0x01, prefix 0x01, and form MRM1r. Then have the code
      emitter special case these, a la [SML]FENCE.
      
      llvm-svn: 72556
      2e09bd3d
    • Douglas Gregor's avatar
      When we parse a tag specifier, keep track of whether that tag · d6ab8744
      Douglas Gregor authored
      specifier resulted in the creation of a new TagDecl node, which
      happens either when the tag specifier was a definition or when the tag
      specifier was the first declaration of that tag type. This information
      has several uses, the first of which is implemented in this commit:
      
        1) In C++, one is not allowed to define tag types within a type
        specifier (e.g., static_cast<struct S { int x; } *>(0) is
        ill-formed) or within the result or parameter types of a
        function. We now diagnose this.
      
        2) We can extend DeclGroups to contain information about any tags
        that are declared/defined within the declaration specifiers of a
        variable, e.g.,
      
          struct Point { int x, y, z; } p;
      
        This will help improve AST printing and template instantiation,
        among other things.
      
        3) For C99, we can keep track of whether a tag type is defined
        within the type of a parameter, to properly cope with cases like,
        e.g.,
      
          int bar(struct T2 { int x; } y) {
            struct T2 z;
          }
      
        We can also do similar things wherever there is a type specifier,
        e.g., to keep track of where the definition of S occurs in this
        legal C99 code:
      
          (struct S { int x, y; } *)0
      
        
      
      llvm-svn: 72555
      d6ab8744
    • Eli Friedman's avatar
      PR4281: Fix bogus CodeGen assertion. The issue is that · 2a69547f
      Eli Friedman authored
      getUnqualifiedType() doesn't strip off all qualifiers for non-canonical 
      types.
      
      llvm-svn: 72552
      2a69547f
    • Daniel Dunbar's avatar
      NewNightlyTest.pl: Add a -parallel-jobs argument (set # of jobs for make with · e88a7d51
      Daniel Dunbar authored
      -parallel, instead of always using 2).
      
      llvm-svn: 72551
      e88a7d51
  2. May 28, 2009
Loading