1. 10 Sep, 2014 1 commit
  2. 09 Sep, 2014 5 commits
  3. 08 Sep, 2014 4 commits
  4. 05 Sep, 2014 2 commits
  5. 04 Sep, 2014 4 commits
  6. 03 Sep, 2014 2 commits
  7. 02 Sep, 2014 3 commits
  8. 29 Aug, 2014 1 commit
    • Convert lit tests to check disassembled assembly. · dddc3069
      Jan Voung authored
      Then when we have an integrated assembler, we can check
      its disassembly and the result should be the same.
      This only touches the tests that invoke llvm-mc currently.
      There are other tests which check for .s file output.
      
      There are quite a bit of quirks with llvm-objdump,
      which is unfortunate:
      
      (*) The symbolizer doesn't pick up non-section-local
      function calls. Some externals were converted to be
      local functions. Workaround: where it counts, I just
      left a check via .s files and a new --check-prefix.
      It's a little better in 3.6.
      
      (*) The symbolizer doesn't pick up global variable names.
      I just checked for the relocation addend instead.
      Didn't check if it was better in 3.6, but maybe.
      
      (*) We have a bug in bundling lock + instructions.
      See
      BUG=https://code.google.com/p/nativeclient/issues/detail?id=3929
      
      (*) There's no disassembly for branch lables.
      Checks of jump instructions were converted to check
      for positive or negative values, depending on whether
      it is a forward or backward branch.
      
      BUG=none
      R=stichnot@chromium.org
      
      Review URL: https://codereview.chromium.org/509233002
  9. 28 Aug, 2014 2 commits
  10. 27 Aug, 2014 4 commits
  11. 26 Aug, 2014 4 commits
  12. 18 Aug, 2014 1 commit
    • Subzero: Fix the simple register allocation for -Om1. · 4d79fe5b
      Jim Stichnoth authored
      Background: After lowering each high-level ICE instruction, Om1 calls
      postLower() to do simple register allocation.  It only assigns
      registers where absolutely necessary, specifically for infinite-weight
      variables, while honoring pre-coloring decisions.  The original Om1
      register allocation never tried to reuse registers within a lowered
      sequence, which was generally OK except for very long lowering
      sequences, such as call instructions or some intrinsics.  In these
      cases, when it ran out of physical registers, it would just reset the
      free list and hope for the best, but with no guarantee of correctness.
      
      The fix involves keeping track of which instruction in the lowered
      sequence holds the last use of each variable, and releasing each
      register back to the free list after its last use.  This makes much
      better use of registers.  It's not necessarily optimal, at least with
      respect to pre-colored variables, since those registers are
      black-listed even if they don't interfere with an infinite-weight
      variable.
      
      BUG= none
      R=jvoung@chromium.org
      
      Review URL: https://codereview.chromium.org/483453002
  13. 15 Aug, 2014 2 commits
  14. 14 Aug, 2014 2 commits
    • Subzero: Align spill locations to natural alignment. · d4799f47
      Matt Wala authored
      This requires sorting the spilled variables based on alignment and
      introducing additional padding around the spill location areas.
      
      These changes allow vector instructions to accept memory operands.
      
      Old stack frame layout:  New stack frame layout:
      +---------------------+  +---------------------+
      | return address      |  | return address      |
      +---------------------+  +---------------------+
      | preserved registers |  | preserved registers |
      +---------------------+  +---------------------+
      | global spill area   |  | padding             |
      +---------------------+  +---------------------+
      | local spill area    |  | global spill area   |
      +---------------------+  +---------------------+
      | padding             |  | padding             |
      +---------------------+  +---------------------+
      | local variables     |  | local spill area    |
      +---------------------+  +---------------------+
                               | padding             |
                               +---------------------+
                               | local variables     |
                               +---------------------+
      
      BUG=none
      R=jvoung@chromium.org, stichnot@chromium.org
      
      Review URL: https://codereview.chromium.org/465413003
    • Emit .local before .comm for bss to make llvm-mc happy. · f820da5e
      Jan Voung authored
      Otherwise llvm-mc asserts. This is also the order that llc emits the directives.
      Change a couple of RUIN -> RUN in lit tests.
      
      BUG=none
      R=stichnot@chromium.org
      
      Review URL: https://codereview.chromium.org/469973002
  15. 13 Aug, 2014 1 commit
    • Convert lit test llvm-mc -arch arguments to full -triple. · c8e87812
      Jan Voung authored
      Mostly to make them a bit more portable across OSes.
      Otherwise the OS assumed by llvm-mc is the build/host OS. So,
      on Mac llvm-mc will assume it's targeting darwin and only accepts macho
      assembler directives. Assembler directives like .rodata.cst8 are not accepted
      (I'm guessing it uses .cstring, .literal4, etc. instead?).
      
      Force an OS (NaCl) so that ELF-related assembler macros make sense.
      
      Also remove a now unused function typeIdentString to make clang happy.
      
      Example errors:
      Command 5 Stderr:
      <stdin>:5:2: error: unknown directive
              .type   fixed_400,@function
              ^
      <stdin>:23:2: error: unknown directive
              .type   variable_n,@function
              ^
      <stdin>:40:11: error: mach-o section specifier uses an unknown section type
              .section        .rodata.cst4,"aM",@progbits,4
                              ^
      <stdin>:42:11: error: mach-o section specifier uses an unknown section type
              .section        .rodata.cst8,"aM",@progbits,8
                              ^
      
      BUG=none
      R=stichnot@chromium.org, wala@chromium.org
      
      Review URL: https://codereview.chromium.org/467103004
  16. 12 Aug, 2014 2 commits