Skip to content
  1. Feb 19, 2014
  2. Feb 18, 2014
  3. Feb 17, 2014
  4. Feb 16, 2014
    • Mark Seaborn's avatar
      Use 16 byte stack alignment for NaCl on ARM · be266aa3
      Mark Seaborn authored
      NaCl's ARM ABI uses 16 byte stack alignment, so set that in
      ARMSubtarget.cpp.
      
      Using 16 byte alignment exposes an issue in code generation in which a
      varargs function leaves a 4 byte gap between the values of r1-r3 saved
      to the stack and the following arguments that were passed on the
      stack.  (Previously, this code only needed to support 4 byte and 8
      byte alignment.)
      
      With this issue, llc generated:
      
      varargs_func:
              sub     sp, sp, #16
              push    {lr}
              sub     sp, sp, #12
              add     r0, sp, #16   // Should be 20
              stm     r0, {r1, r2, r3}
              ldr     r0, .LCPI0_0  // Address of va_list
              add     r1, sp, #16
              str     r1, [r0]
              bl      external_func
      
      Fix the bug by checking for "Align > 4".  Also simplify the code by
      using OffsetToAlignment(), and update comments.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2677
      
      llvm-svn: 201497
      be266aa3
    • Arnold Schwaighofer's avatar
      SCEVExpander: Try hard not to create derived induction variables in other loops · 26f567d8
      Arnold Schwaighofer authored
      During LSR of one loop we can run into a situation where we have to expand the
      start of a recurrence of a loop induction variable in this loop. This start
      value is a value derived of the induction variable of a preceeding loop. SCEV
      has cannonicalized this value to a different recurrence than the recurrence of
      the preceeding loop's induction variable (the type and/or step direction) has
      changed). When we come to instantiate this SCEV we created a second induction
      variable in this preceeding loop.  This patch tries to base such derived
      induction variables of the preceeding loop's induction variable.
      
      This helps twolf on arm and seems to help scimark2 on x86.
      
      Reapply with a fix for the case of a value derived from a pointer.
      
      radar://15970709
      
      llvm-svn: 201496
      26f567d8
    • Rafael Espindola's avatar
      Remove dead code, we already require cmake 2.8.8. · 7e78a5a2
      Rafael Espindola authored
      llvm-svn: 201495
      7e78a5a2
    • Rafael Espindola's avatar
      Remove unnecessary typename. · 56b663b6
      Rafael Espindola authored
      Thanks to Elena Demikhovsky for noticing.
      
      llvm-svn: 201494
      56b663b6
    • Elena Demikhovsky's avatar
      1fad0759
    • Gerolf Hoflehner's avatar
      fixed typo in comment as my test commit · 282949bf
      Gerolf Hoflehner authored
      llvm-svn: 201486
      282949bf
    • Eric Christopher's avatar
      Add a DIELoc class to cover the DW_FORM_exprloc set of expressions · 4a741049
      Eric Christopher authored
      alongside DIEBlock and replace uses accordingly. Use DW_FORM_exprloc
      in DWARF4 and later code. Update testcases.
      
      Adding a DIELoc instead of using extra forms inside DIEBlock so
      that we can keep location expressions separate from other uses. No
      direct use at the moment, however, it's not a lot of code and
      using a separately named class keeps it somewhat more obvious
      what's going on in various locations.
      
      llvm-svn: 201481
      4a741049
    • Saleem Abdulrasool's avatar
      MCAsmParser: relax declaration parsing · 27304cb1
      Saleem Abdulrasool authored
      The Linux kernel defines empty macros for compatibility with ARM UAL syntax.
      The comma after the name is optional, and if present can be safely lexed.  This
      improves compatibility with the GNU assembler.
      
      llvm-svn: 201474
      27304cb1
    • Saleem Abdulrasool's avatar
      ARM IAS: (partially) support .arch_extension directive · 49480bf0
      Saleem Abdulrasool authored
      This adds a partial implementation of the .arch_extension directive to the
      integrated ARM assembler.  There are a number of limitations to this
      implementation arising from the target backend support rather than the
      implementation itself.  Namely, iWMMXT (v1 and v2), Maverick, and XScale support
      is not present in the ARM backend.  Currently, there is no check for A-class
      only (needed for virt), and no ARMv6k detection (needed for os and sec).  The
      remainder of the extensions are fully supported.
      
      llvm-svn: 201471
      49480bf0
Loading