Skip to content
  1. Oct 15, 2007
    • Evan Cheng's avatar
      Make CalcLatency() non-recursive. · 04c44712
      Evan Cheng authored
      llvm-svn: 43017
      04c44712
    • Dan Gohman's avatar
      Fix a typo in a comment. · a8656d47
      Dan Gohman authored
      llvm-svn: 43016
      a8656d47
    • Dan Gohman's avatar
      Document the -view-sunit-dags option. · d4f21650
      Dan Gohman authored
      llvm-svn: 43015
      d4f21650
    • Steve Naroff's avatar
      · 126b4d83
      Steve Naroff authored
      Fix a parser bug with message expressions - need to call ParsePostfixExpressionSuffix(). 
      
      Now were correctly allow the following...
      
          i = [str rangeOfString:@"]"].length;
      
      llvm-svn: 43012
      126b4d83
    • Steve Naroff's avatar
      · 32e44c00
      Steve Naroff authored
      Move type compatibility predicates from Type to ASTContext. In addition, the predicates are now instance methods (they were previously static class methods on Type).
      
      This allowed me to fix the following hack from this weekend...
      
      // FIXME: Devise a way to do this without using strcmp.
      // Would like to say..."return getAsStructureType() == IdStructType;", but
      // we don't have a pointer to ASTContext.
      bool Type::isObjcIdType() const {
        if (const RecordType *RT = getAsStructureType())
          return !strcmp(RT->getDecl()->getName(), "objc_object");
        return false;
      }
      
      ...which is now...
      
      bool isObjcIdType(QualType T) const {
        return T->getAsStructureType() == IdStructType;
      }
      
      Side notes:
      
      - I had to remove a convenience function from the TypesCompatibleExpr class.
      
      int typesAreCompatible() const {return Type::typesAreCompatible(Type1,Type2);}
      
      Which required a couple clients get a little more verbose...
      
      -    Result = TCE->typesAreCompatible();
      +    Result = Ctx.typesAreCompatible(TCE->getArgType1(), TCE->getArgType2());
      
      Overall, I think this change also makes sense for a couple reasons...
      
      1) Since ASTContext vends types, it makes sense for the type compatibility API to be there.
      2) This allows the type compatibility predeciates to refer to data not strictly present in the AST (which I have found problematic on several occasions).
      
      llvm-svn: 43009
      32e44c00
    • Dan Gohman's avatar
      Document the new llvm.sin, llvm.cos, and llvm.pow intrinsics. Feedback · b6324c12
      Dan Gohman authored
      is welcome!
      
      llvm-svn: 43007
      b6324c12
    • Anders Carlsson's avatar
      Add code generation and sema checking for __builtin_va_arg. · 7e13ab88
      Anders Carlsson authored
      llvm-svn: 43006
      7e13ab88
    • Chris Lattner's avatar
      Change LowerFP_TO_SINT to create the specific code it needs instead of · 06a4954e
      Chris Lattner authored
      unconditionally creating an i64 bitcast.  With the future legalizer
      design, operation legalization can't introduce new nodes with illegal
      types.
      
      This fixes the rest of olden on ppc32.
      
      llvm-svn: 43005
      06a4954e
    • Evan Cheng's avatar
      LowerFP_TO_SINT must not create a stack object if it's not needed. · 7bcfd8f8
      Evan Cheng authored
      llvm-svn: 43004
      7bcfd8f8
    • Devang Patel's avatar
      Add removeModuleProvider() · 324fe890
      Devang Patel authored
      llvm-svn: 43002
      324fe890
    • Dan Gohman's avatar
      Reapply the fix in 42908 for this file. This changes the function names · e862243e
      Dan Gohman authored
      from "test" to "foo" so that they don't match the grep -i ST.
      
      llvm-svn: 43001
      e862243e
    • Fariborz Jahanian's avatar
      d4b3015d
    • Ted Kremenek's avatar
      Fixed incorrect renaming of method name (forgot two characters). · 7bbc582b
      Ted Kremenek authored
      llvm-svn: 42999
      7bbc582b
    • Ted Kremenek's avatar
      Added more doxygen comments. · fcce4f37
      Ted Kremenek authored
      Renamed internal method of ImutAVLTree::RemoveMutableFlag to MarkImmutable.
      Added enum for bit manipulation (more self-documentating).
      
      llvm-svn: 42998
      fcce4f37
    • Evan Cheng's avatar
      Fix PR1729: watch out for val# with no def. · a5abba65
      Evan Cheng authored
      llvm-svn: 42996
      a5abba65
    • Chris Lattner's avatar
      Move CreateStackTemporary out to SelectionDAG · d6f7d44e
      Chris Lattner authored
      llvm-svn: 42995
      d6f7d44e
    • Chris Lattner's avatar
      add a new CreateStackTemporary helper method. · 9eb7a829
      Chris Lattner authored
      llvm-svn: 42994
      9eb7a829
    • Chris Lattner's avatar
      implement promotion of BR_CC operands, fixing bisort on ppc. · 9d5b131e
      Chris Lattner authored
      llvm-svn: 42992
      9d5b131e
    • Chris Lattner's avatar
      updates from duncan · 8555e69d
      Chris Lattner authored
      llvm-svn: 42991
      8555e69d
    • Tanya Lattner's avatar
      Fix run line. · 9486b190
      Tanya Lattner authored
      llvm-svn: 42990
      9486b190
    • Devang Patel's avatar
      New test. · 80b12222
      Devang Patel authored
      llvm-svn: 42986
      80b12222
    • Devang Patel's avatar
      Achieve same result but use fewer lines of code. · bff4aea3
      Devang Patel authored
      llvm-svn: 42985
      bff4aea3
    • Neil Booth's avatar
      Fast-track obviously over-large and over-small exponents during decimal-> · 91305519
      Neil Booth authored
      integer conversion.  In some such cases this makes us one or two orders
      of magnitude faster than NetBSD's libc.  Glibc seems to have a similar
      fast path.
      
      Also, tighten up some upper bounds to save a bit of memory.
      
      llvm-svn: 42984
      91305519
    • Steve Naroff's avatar
      · 66e9f331
      Steve Naroff authored
      Added ASTContext::setObjcIdType/getObjcIdType(), set by Sema.
      
      Also noticed ASTContext::BuiltinVaListType wasn't being initialized to the null type (so I set it).
      
      llvm-svn: 42983
      66e9f331
    • Duncan Sands's avatar
      Fix some typos. Call getTypeToTransformTo rather than · f6977d98
      Duncan Sands authored
      getTypeToExpandTo.  The difference is that
      getTypeToExpandTo gives the final result of expansion
      (eg: i128 -> i32 on a 32 bit machine) while
      getTypeToTransformTo does just one step (i128 -> i64).
      
      llvm-svn: 42982
      f6977d98
    • Chris Lattner's avatar
      One mundane change: Change ReplaceAllUsesOfValueWith to *optionally* · 3cfb56d4
      Chris Lattner authored
      take a deleted nodes vector, instead of requiring it.
      
      One more significant change:  Implement the start of a legalizer that
      just works on types.  This legalizer is designed to run before the 
      operation legalizer and ensure just that the input dag is transformed
      into an output dag whose operand and result types are all legal, even
      if the operations on those types are not.
      
      This design/impl has the following advantages:
      
      1. When finished, this will *significantly* reduce the amount of code in
         LegalizeDAG.cpp.  It will remove all the code related to promotion and
         expansion as well as splitting and scalarizing vectors.
      2. The new code is very simple, idiomatic, and modular: unlike 
         LegalizeDAG.cpp, it has no 3000 line long functions. :)
      3. The implementation is completely iterative instead of recursive, good
         for hacking on large dags without blowing out your stack.
      4. The implementation updates nodes in place when possible instead of 
         deallocating and reallocating the entire graph that points to some 
         mutated node.
      5. The code nicely separates out handling of operations with invalid 
         results from operations with invalid operands, making some cases
         simpler and easier to understand.
      6. The new -debug-only=legalize-types option is very very handy :), 
         allowing you to easily understand what legalize types is doing.
      
      This is not yet done.  Until the ifdef added to SelectionDAGISel.cpp is
      enabled, this does nothing.  However, this code is sufficient to legalize
      all of the code in 186.crafty, olden and freebench on an x86 machine.  The
      biggest issues are:
      
      1. Vectors aren't implemented at all yet
      2. SoftFP is a mess, I need to talk to Evan about it.
      3. No lowering to libcalls is implemented yet.
      4. Various operations are missing etc.
      5. There are FIXME's for stuff I hax0r'd out, like softfp.
      
      Hey, at least it is a step in the right direction :).  If you'd like to help,
      just enable the #ifdef in SelectionDAGISel.cpp and compile code with it.  If
      this explodes it will tell you what needs to be implemented.  Help is 
      certainly appreciated.
      
      Once this goes in, we can do three things:
      
      1. Add a new pass of dag combine between the "type legalizer" and "operation
         legalizer" passes.  This will let us catch some long-standing isel issues
         that we miss because operation legalization often obfuscates the dag with
         target-specific nodes.
      2. We can rip out all of the type legalization code from LegalizeDAG.cpp,
         making it much smaller and simpler.  When that happens we can then 
         reimplement the core functionality left in it in a much more efficient and
         non-recursive way.
      3. Once the whole legalizer is non-recursive, we can implement whole-function
         selectiondags maybe...
      
      llvm-svn: 42981
      3cfb56d4
    • Chris Lattner's avatar
      One xform performed by LegalizeDAG is transformation of "store of fp" to "store of int". · b193517e
      Chris Lattner authored
      Make two changes:
      1) only xform "store of f32" if i32 is a legal type for the target.
      2) only xform "store of f64" if either i64 or i32 are legal for the target.
      3) if i64 isn't legal, manually lower to 2 stores of i32 instead of letting a
         later pass of legalize do it.  This is ugly, but helps future changes I'm 
         about to commit.
      
      llvm-svn: 42980
      b193517e
    • Chris Lattner's avatar
      avoid an APFloat copy. · 2b827fd7
      Chris Lattner authored
      llvm-svn: 42979
      2b827fd7
    • Chris Lattner's avatar
      Add a (disabled by default) way to view the ID of a node. · 90e0b271
      Chris Lattner authored
      llvm-svn: 42978
      90e0b271
    • Chris Lattner's avatar
      remove dead enum, make setNodeId public. · bfdebe33
      Chris Lattner authored
      llvm-svn: 42977
      bfdebe33
    • Chris Lattner's avatar
      Fix 80 col violation · a2ebb9aa
      Chris Lattner authored
      llvm-svn: 42976
      a2ebb9aa
    • Steve Naroff's avatar
      · 27164362
      Steve Naroff authored
      Teach the type checker about "id". This removes the following bogus warning...
      
      [dylan:~/llvm/tools/clang] admin% ../../Debug/bin/clang t.m
      t.m:29:18: warning: incompatible pointer types assigning 'id' to 'NSString *'
          resultString = [[NSString alloc] initWithFormat:0 arguments:0];
          ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      llvm-svn: 42975
      27164362
    • Anders Carlsson's avatar
      Add support for Pascal strings. · cbfc4b88
      Anders Carlsson authored
      llvm-svn: 42974
      cbfc4b88
    • Anders Carlsson's avatar
      Fix a warning · b30f47a8
      Anders Carlsson authored
      llvm-svn: 42973
      b30f47a8
    • Dale Johannesen's avatar
      Handle PPC long double in CBackend. · 207bd4d9
      Dale Johannesen authored
      llvm-svn: 42972
      207bd4d9
    • Steve Naroff's avatar
      · 5d152544
      Steve Naroff authored
      - Teach ObjcInterfaceDecl::lookupInstance/ClassMethod to look through protocols.
      - Start looking up methods in the global method pools (for "id").
      - Start integrating interface types into the type system.
      
      llvm-svn: 42971
      5d152544
  2. Oct 14, 2007
Loading