Skip to content
  1. Oct 26, 2012
    • Fariborz Jahanian's avatar
      objective-C IRGen: for @implementation nested in · 2d26c29e
      Fariborz Jahanian authored
      extern "C", its method definitions must be IRGen'ed
      before meta-data for class is generated. Otherwise,
      IRGen crashes (to say the least).
      // rdar://12581683 
      
      llvm-svn: 166809
      2d26c29e
    • Bill Schmidt's avatar
      This patch addresses a 64-bit PowerPC ELF ABI compatibility issue with · 4a2dcfe5
      Bill Schmidt authored
      varargs parameter passing.
      
      A strict reading of the ABI indicates that any argument with alignment greater
      than 8 may require skipping doublewords in the parameter save area to align
      the argument, and hence require skipping GPRs.  In practice, this is not done
      by GCC.  The alignment restriction is used for internal alignment of a
      structure, but a structure with 16-byte alignment, for example, is not
      itself 16-byte aligned in the parameter save area.  Although this is messy,
      it has become the de facto standard used in building existing libraries.
      
      My initial varargs support followed the ABI language, but not the de facto
      standard.  Running the GCC compatibility test suite exposed this issue, and
      indeed showed that LLVM didn't pass parameters self-consistently with my
      original logic.  Removing the additional alignment logic allows the affected
      tests to now pass.
      
      I modified the ppc64-varargs-struct.c test case to remove the existing test
      for generation of alignment code, which is no longer appropriate.
      
      Built and tested on powerpc64-unknown-linux-gnu with no new regressions.
      
      llvm-svn: 166805
      4a2dcfe5
    • Fariborz Jahanian's avatar
      Declare type of flags to be used in a __block (byref) · 77599ce8
      Fariborz Jahanian authored
      variable descriptor captured by a block.
      
      llvm-svn: 166746
      77599ce8
    • Quentin Colombet's avatar
      5ee5ca1d
    • Fariborz Jahanian's avatar
      Changing name of enum for block literal flags to represent · a3926ec1
      Fariborz Jahanian authored
      what it is meant for.
      
      llvm-svn: 166734
      a3926ec1
  2. Oct 25, 2012
  3. Oct 24, 2012
  4. Oct 23, 2012
  5. Oct 20, 2012
  6. Oct 19, 2012
  7. Oct 18, 2012
  8. Oct 17, 2012
    • Eric Christopher's avatar
      Revert r158009 since there are some uses of artificial functions in · 086da341
      Eric Christopher authored
      debug info.
      
      llvm-svn: 166109
      086da341
    • John McCall's avatar
      Set a special flag in class metadata when an Objective-C class · 0d54a17b
      John McCall authored
      has ivars that require destruction, but none that require anything
      except zero-initialization.  This is common in ARC and (when true
      throughout a class hierarchy) permits the elimination of an
      unnecessary message-send during allocation.
      
      llvm-svn: 166088
      0d54a17b
    • John McCall's avatar
      Organize and rename the magic constants for class flags. · ef19dbb6
      John McCall authored
      No functionality change.
      
      llvm-svn: 166087
      ef19dbb6
    • John McCall's avatar
      At -O0, prefer objc_storeStrong with a null new value to the · e68b8f4d
      John McCall authored
      combination of a load+objc_release;  this is generally better
      for tools that try to track why values are retained and
      released.  Also use objc_storeStrong when copying a block
      (again, only at -O0), which requires us to do a preliminary
      store of null in order to compensate for objc_storeStrong's
      assign semantics.
      
      llvm-svn: 166085
      e68b8f4d
    • Nico Weber's avatar
      "'Might as well make it static const.' -- John McCall" -- Michael Scott · 9272407c
      Nico Weber authored
      llvm-svn: 166080
      9272407c
    • David Blaikie's avatar
      PR13684: Emit vtable entries for deleted functions as __cxa_deleted_function. · eb7d598c
      David Blaikie authored
      This is consistent/interoperable with GCC 4.7 (& __cxa_deleted_function isn't
      present in 4.4 - not sure when it got added, but you'll need something with
      that function available for this to work).
      
      llvm-svn: 166069
      eb7d598c
    • Derek Schuff's avatar
      Add pnaclcall convention to Native Client targets. · a202096d
      Derek Schuff authored
      Because PNaCl bitcode must be target-independent, it uses some
      different bitcode representations from other targets (e.g. byval and
      sret for structures). This means that without additional type
      information, it cannot meet some native ABI requirements for some
      targets (e.g. passing structures containing unions by value on
      x86-64). To allow generation of code which uses the correct native
      ABIs, we also support triples such as x86_64-nacl, which uses
      target-dependent IR (as opposed to le32-nacl, which uses byval and
      sret).
      
      To allow interoperation between the two types of code, this patch adds
      a calling convention attribute to be used in code compiled with the
      target-dependent triple, which will generate code using the le32-style
      bitcode. This calling convention does not need to be explicitly
      supported in the backend because it determines bitcode representation
      rather than native conventions (the backend just needs to undersand
      how to handle byval and sret for the Native Client OS).
      
      This patch implements __attribute__((pnaclcall)) to generate calls in
      bitcode according to the le32 bitcode conventions, an attribute which
      is accepted by any Native Client target, but issues a warning
      otherwise.
      
      llvm-svn: 166065
      a202096d
  9. Oct 16, 2012
Loading