1. 22 Sep, 2014 1 commit
  2. 20 Sep, 2014 1 commit
    • Subzero: Change the way bitcast stack slot lowering is handled. · 800dab29
      Jim Stichnoth authored
      When doing a bitcast between int and FP types, the way lowering works
      is that a spill temporary is created, with regalloc weight of zero to
      inhibit register allocation, and this spill temporary is used for the
      cvt instruction.  If the other variable does not get
      register-allocated, then addProlog() forces the spill temporary to
      share the same stack slot as the other variable.
      
      Currently, the lowering code passes this information to addProlog()
      by using the setPreferredRegister() mechanism.
      
      This is changed by creating a target-specific subclass of Variable, so
      that only the spill temporaries need to carry this extra information.
      
      Ultimately, many of the existing Variable fields will be refactored
      into a separate structure, and only generated/used as needed by
      various optimization passes.  The spill temporary linkage is the one
      thing that is still needed with Om1 when no optimizations are enabled,
      motivating this change.
      
      A couple other minor cleanups are also done here.
      
      The key test is that the cast cross tests continue to work,
      specifically the bitcast tests.
      
      BUG= none
      R=jvoung@chromium.org
      
      Review URL: https://codereview.chromium.org/586943003
  3. 19 Sep, 2014 3 commits
  4. 18 Sep, 2014 2 commits
    • Subzero: Allow extra args to be passed to llc and Subzero. · 89906a5e
      Jim Stichnoth authored
      Use --llc to pass extra arguments to pnacl-translate.
      
      Use --sz to pass extra arguments to llvm2ice.
      
      The --stats argument is removed from the script because it is Subzero-only, and can now be done with --sz=--stats .
      
      BUG= none
      R=jvoung@chromium.org
      
      Review URL: https://codereview.chromium.org/582593002
    • Subzero: Add branch optimization. · ff9c7063
      Jim Stichnoth authored
      1. Unconditional branch to the next basic block is removed.
      
      2. For a conditional branch with a "false" edge to the next basic block, remove the unconditional branch to the fallthrough block.
      
      3. For a conditional branch with a "true" edge to the next basic block, invert the condition and do like #2.
      
      This is enabled only for O2, particularly because inverting the branch condition is a marginally risky operation.
      
      This decreases the instruction count by about 5-6%.
      
      Also, --stats prints a final tally to make it easier to post-process the output.
      
      BUG= none
      R=jvoung@chromium.org
      
      Review URL: https://codereview.chromium.org/580903005
  5. 17 Sep, 2014 5 commits
  6. 16 Sep, 2014 5 commits
  7. 15 Sep, 2014 2 commits
  8. 12 Sep, 2014 4 commits
  9. 11 Sep, 2014 3 commits
  10. 10 Sep, 2014 3 commits
  11. 09 Sep, 2014 5 commits
  12. 08 Sep, 2014 4 commits
  13. 05 Sep, 2014 2 commits