X86 only. The register availability peephole optimization during lowering disallows available register substitution when the variable is pre-colored. This is for good reasons (too complex to be discussed here). However, that leaves some potential substitutions on the table. Specifically, this happens a lot around register arguments to function calls, both at the call site and in the prolog. The simplest solution seems to be to launder the pre-colored variable through a separate infinite-weight variable, as implemented in this CL through a combination of such copies and extra legalize() calls. There are other situations where this technique can also work, which may be handled in a separate CL. This CL also fixes a problem where the stack pointer adjustment in the prolog is subject to dead-code elimination if the function has no epilog. This would only happen in asm-verbose mode, in the final liveness analysis pass prior to code emission. BUG= none R=eholk@chromium.org Review URL: https://codereview.chromium.org/2052683003 .
| Name |
Last commit
|
Last update |
|---|---|---|
| Makefile.standalone-help | Loading commit data... | |
| bloat | Loading commit data... | |
| crosstest | Loading commit data... | |
| docs | Loading commit data... | |
| pnacl-llvm | Loading commit data... | |
| pydir | Loading commit data... | |
| runtime | Loading commit data... | |
| src | Loading commit data... | |
| tests_lit | Loading commit data... | |
| unittest | Loading commit data... | |
| wasm-tests | Loading commit data... | |
| .dir-locals.el | Loading commit data... | |
| .gitignore | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| DESIGN.rst | Loading commit data... | |
| LICENSE.TXT | Loading commit data... | |
| Makefile | Loading commit data... | |
| Makefile.standalone | Loading commit data... | |
| OWNERS | Loading commit data... | |
| README-wasm.md | Loading commit data... | |
| README.rst | Loading commit data... | |
| c2wasm-exe.sh | Loading commit data... | |
| codereview.settings | Loading commit data... | |
| fetch-torture-tests.sh | Loading commit data... |