Skip to content
  1. Jan 12, 2013
    • Tim Northover's avatar
      Fix broken links around Itanium C++ ABI in documentation. · 53acb32a
      Tim Northover authored
      llvm-svn: 172312
      53acb32a
    • Michael Gottesman's avatar
      Fixed debug message in ObjCARC. · 9f1be687
      Michael Gottesman authored
      llvm-svn: 172299
      9f1be687
    • Michael Gottesman's avatar
      Fixed a few debug messages in ObjCARC and added one. · b24bdef7
      Michael Gottesman authored
      llvm-svn: 172298
      b24bdef7
    • Bob Wilson's avatar
      Fix quoting problems from my previous change. <rdar://problem/13001651> · ace548a9
      Bob Wilson authored
      I give up trying to get all of the settings into COMMON_MAKEFLAGS, so just
      do the easy thing and repeat the ones with interesting quoting issues
      in each make command.
      
      llvm-svn: 172296
      ace548a9
    • Michael Gottesman's avatar
      Fixed bug in ObjCARC where we were changing a call from objc_autoreleaseRV =>... · 556ff611
      Michael Gottesman authored
      Fixed bug in ObjCARC where we were changing a call from objc_autoreleaseRV => objc_autorelease but were not updating the InstructionClass to IC_Autorelease.
      
      llvm-svn: 172288
      556ff611
    • Michael Gottesman's avatar
      Fixed a bug where we were tail calling objc_autorelease causing an object to... · c9656faf
      Michael Gottesman authored
      Fixed a bug where we were tail calling objc_autorelease causing an object to not be placed into an autorelease pool.
      
      The reason that this occurs is that tail calling objc_autorelease eventually
      tail calls -[NSObject autorelease] which supports fast autorelease. This can
      cause us to violate the semantic gaurantees of __autoreleasing variables that
      assignment to an __autoreleasing variables always yields an object that is
      placed into the innermost autorelease pool.
      
      The fix included in this patch works by:
      
      1. In the peephole optimization function OptimizeIndividualFunctions, always
      remove tail call from objc_autorelease.
      2. Whenever we convert to/from an objc_autorelease, set/unset the tail call
      keyword as appropriate.
      
      *NOTE* I also handled the case where objc_autorelease is converted in
      OptimizeReturns to an autoreleaseRV which still violates the ARC semantics. I
      will be removing that in a later patch and I wanted to make sure that the tree
      is in a consistent state vis-a-vis ARC always.
      
      Additionally some test cases are provided and all tests that have tail call marked
      objc_autorelease keywords have been modified so that tail call has been removed.
      
      *NOTE* One test fails due to a separate bug that I am going to commit soon. Thus
      I marked the check line TMP: instead of CHECK: so make check does not fail.
      
      llvm-svn: 172287
      c9656faf
    • Jack Carter's avatar
      This patch tackles the problem of parsing Mips · 873c724b
      Jack Carter authored
      register names in the standalone assembler llvm-mc.
      
      Registers such as $A1 can represent either a 32 or
      64 bit register based on the instruction using it.
      In addition, based on the abi, $T0 can represent different
      32 bit registers.
      
      
      The problem is resolved by the Mips specific AsmParser 
      td definitions changing to work together. Many cases of
      RegisterClass parameters are now RegisterOperand.
      
      
      Contributer: Vladimir Medic
      llvm-svn: 172284
      873c724b
    • Jakob Stoklund Olesen's avatar
      Limit the search space in RAGreedy::tryEvict(). · 3dd236cd
      Jakob Stoklund Olesen authored
      When tryEvict() is looking for a cheaper register in the allocation
      order, skip the tail of too expensive registers when possible.
      
      llvm-svn: 172281
      3dd236cd
    • Jakob Stoklund Olesen's avatar
      Precompute some information about register costs. · 8f644449
      Jakob Stoklund Olesen authored
      Remember the minimum cost of the registers in an allocation order and
      the number of registers at the end of the allocation order that have the
      same cost per use.
      
      This information can be used to limit the search space for
      RAGreedy::tryEvict() when looking for a cheaper register.
      
      llvm-svn: 172280
      8f644449
    • Eli Bendersky's avatar
      Stop hiding the interface-exposed EatToEndOfStatement (see r172276). · 03872a3a
      Eli Bendersky authored
      llvm-svn: 172277
      03872a3a
    • Eli Bendersky's avatar
      Make ParseIdentifier a public method instead of private. · 0cf0cb92
      Eli Bendersky authored
      The MCAsmParser interface defines ParseIdentifier is public. There's no reason
      whatsoever for AsmParser (which implements the MCAsmParser interface) to hide
      this method.
      
      This is all part of a bigger scheme. Several asm parsing "extensions" use the
      main parser properly through the MCAsmParser interface. However,
      GenericAsmParser has much more exclusive access and uses implementation details
      from the concrete implementation - AsmParser, in which it is also declared as
      a friend. This makes for overly coupled code, and even makes it hard to split
      GenericAsmParser into a separate file. There's no reason why GenericAsmParser
      shouldn't be able to access AsmParser through an abstract interface, as long
      as it's actually registered as an extension.
      
      llvm-svn: 172276
      0cf0cb92
    • Michael Gottesman's avatar
      Fixed whitespace. · 2a654272
      Michael Gottesman authored
      llvm-svn: 172271
      2a654272
  2. Jan 11, 2013
Loading