- 08 Sep, 2016 2 commits
-
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: If4e1f8269343161f907a62f1fccf6a547f80fc1d Reviewed-on: https://chromium-review.googlesource.com/382371Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Jim Stichnoth <stichnot@chromium.org>
-
Nicolas Capens authored
ConstantInteger32::shouldBeRandomizedOrPooled() was defined in a source file and not resolvable. Move its definition inline. BUG=swiftshader:7 Change-Id: I693ef93a9986e11b4e24f0194c9260f074567b81 Reviewed-on: https://chromium-review.googlesource.com/380422Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 07 Sep, 2016 5 commits
-
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: I0c51c67b6f19a061dfff83415df5e41ea0efd6de Reviewed-on: https://chromium-review.googlesource.com/380596Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: I0ef3b0ab059bd48e0241eea13a5b77a193351108 Reviewed-on: https://chromium-review.googlesource.com/380275Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
Visual Studio doesn't recognize the use of a class member in a static constexpr unless prefixed with the class name. BUG=swiftshader:7 Change-Id: I4ffbaa6fc1a43a7294ecdaf426bd7fc2aab5e469 Reviewed-on: https://chromium-review.googlesource.com/380195Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
With Visual Studio 2015, the Traits type alias is not considered within scope yet for the constructor's argument list. Instead Use the template argument directly. BUG=swiftshader:7 Change-Id: I677f5bed1a4749aba921a23ed5b1466431147069 Reviewed-on: https://chromium-review.googlesource.com/379915Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: If0cfad149ba6ba7bc17708e8a6e5183189eeef5c Reviewed-on: https://chromium-review.googlesource.com/379876Reviewed-by:
Jim Stichnoth <stichnot@chromium.org> Tested-by:
Nicolas Capens <nicolascapens@google.com>
-
- 04 Sep, 2016 1 commit
-
-
Jaydeep Patil authored
This patch implements lowerLoad and extends existing lowerStore for byte, short and floating-point types. The patch also modifies PostLoweringLegalizer for conversion of mov to load or store. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2301303003 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 02 Sep, 2016 4 commits
-
-
Nicolas Capens authored
Visual Studio 2015 does not support the use of typename outside of a template definition. Instead alias the flag's storage type. This even avoids some duplication. BUG=swiftshader:7 Change-Id: I787701f6bfe8e36169e6ac5d63fcb6a1a114bdb0
-
Nicolas Capens authored
-
Jim Stichnoth authored
There are two problems to address: 1. Google developers lack some tooling to test MIPS changes. 2. MIPS developers lack some tooling/packages to allow full "make presubmit" testing. Until all this gets sorted out, we add the "make -f Makefile.standalone MIPS=1" option to control some of the testing targets: check-lit: No changes, as all these lit tests should be runnable in both environments. check-xtest: MIPS=1 runs just the mips32 tests, plus the x8664 native tests as a sanity-check. Non-MIPS runs everything except the mips32 tests. check-spec: MIPS=1 completely disables spec2k testing. presubmit: MIPS=1 greatly reduces the number of tests (especially since so many are spec variants). With this change, mips32 CLs should pass "make -f Makefile.standalone MIPS=1 presubmit" before upload, and other CLs should pass "make -f Makefile.standalone presubmit". BUG= none R=kschimpf@google.com, obucinac@gmail.com Review URL: https://codereview.chromium.org/2271053006 .
-
Nicolas Capens authored
BUG=swiftshader:7 Change-Id: I1c40c10b3c3d032d3f7e0f8634c7c9abcc21d130
-
- 31 Aug, 2016 3 commits
-
-
Jim Stichnoth authored
Currently, TargetLowering::sortVarsByAlignment() uses the variable's required alignment as the primary key, but then std::sort() breaks ties arbitrarily. This can give different results across different STL implementations, for example when building against LLVM trunk versus building in the PNaCl environment. The fix is to use Variable::Number as the secondary key. BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/2295393002 .
-
Jim Stichnoth authored
LLVM commit 1d79fff9e65e77f84bf80c2cf4f0155bd167c90d changed the way ilist::reverse_iterator is converted to ilist::iterator. See https://github.com/llvm-mirror/llvm/commit/1d79fff9e65e77f84bf80c2cf4f0155bd167c90d BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/2297363002 .
-
Jaydeep Patil authored
The patch implements lowerSwitch for i32 and i64 types. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2289043002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 29 Aug, 2016 2 commits
-
-
Jim Stichnoth authored
The original Ice::Inst needed a bit of template specialization so that llvm::ilist<Ice::Inst> methods wouldn't try to invoke private/deleted ctor/dtor methods. The Subzero code copied a pattern fairly widely used in LLVM. Recently, LLVM improved ilist<> so that this specialization is no longer needed. BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/2287363002 .
-
Jaydeep Patil authored
This patch adds encoding of few arithmetic and branch instructions. R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2259983004 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 26 Aug, 2016 1 commit
-
-
Jaydeep Patil authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2275883002 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
- 22 Aug, 2016 1 commit
-
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2266593002 . Patch from Thomas Lively <tlively@google.com>.
-
- 19 Aug, 2016 3 commits
-
-
Jaydeep Patil authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2257043003 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
Jaydeep Patil authored
Both the operands in InstMIPS32Memory are source. However in load instructions, first operand is a destination. The InstMIPS32Load treats first operand as destination and second operand as source. R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/2250203005 . Patch from Jaydeep Patil <jaydeep.patil@imgtec.com>.
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2256673004 .
-
- 18 Aug, 2016 1 commit
-
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/2256903003 .
-
- 17 Aug, 2016 2 commits
-
-
Jim Stichnoth authored
Instead of the version string being like this: Subzero_revision_efdf4120 Make it more like this: Subzero_revision_1089_efdf4120 I.e., provide both git hash and commit count. That way, it's easier to compare revision strings and determine which one is newer. BUG= none R=eholk@chromium.org Review URL: https://codereview.chromium.org/2251153002 .
-
Jim Stichnoth authored
1. Some explicit conversions between Inst* and InstList::iterator are needed. 2. llvm::sys::PrintStackTraceOnErrorSignal() has a new argument. 3. A previous CL neglected to plumb in SUBZERO_REVISION for the cmake build. BUG= none R=eholk@chromium.org Review URL: https://codereview.chromium.org/2247253005 .
-
- 16 Aug, 2016 2 commits
-
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/2241383006 .
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/2242243003 .
-
- 13 Aug, 2016 1 commit
-
-
Mohit Bhakkad authored
R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2223783002 . Patch from Mohit Bhakkad <mohit.bhakkad@imgtec.com>.
-
- 11 Aug, 2016 1 commit
-
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com Review URL: https://codereview.chromium.org/2235023002 .
-
- 10 Aug, 2016 1 commit
-
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com Review URL: https://codereview.chromium.org/2227353002 .
-
- 09 Aug, 2016 1 commit
-
-
Thomas Lively authored
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/2194853003 .
-
- 08 Aug, 2016 2 commits
-
-
Jim Stichnoth authored
BUG= none Review URL: https://codereview.chromium.org/2215623002 .
-
Jim Stichnoth authored
Modify the Makefiles to pass in the current git hash, which is embedded into the translated output. As a side effect, it is also embedded into the Subzero translator binary. This is useful for two reasons: 1. The PNaCl component update process is somewhat manual, making it tricky long after the fact to know exactly which revision was pushed, e.g. when trying to reproduce a bug or crash. 2. A translated binary can be inspected to make sure Chrome used the expected revision of Subzero. (And also to verify that pnacl-sz was used rather than pnacl-llc.) The revision string is suppressed for lit tests, because a number of tests seem overly strict about global initializer expectations. BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/2218363002 .
-
- 05 Aug, 2016 3 commits
-
-
Jim Stichnoth authored
The opt level (O2 versus Om1) should be tested using Cfg::getOptLevel() instead of getFlags().getOptLevel() whenever possible. This is because if you run "-Om1 -force-O2=foo", and you're compiling foo, the first form tells you O2 while the second form tells you Om1. BUG= none R=eholk@chromium.org Review URL: https://codereview.chromium.org/2210773002 .
-
Jim Stichnoth authored
Memset lowering was using the memcpy inline threshold instead of the memset threshold. Using the memset threshold as specified (16) seems to make spec2k performance slightly worse, so change it to the original value (8). BUG= none R=eholk@chromium.org Review URL: https://codereview.chromium.org/2217983003 .
-
Manasij Mukherjee authored
LCSE is local common sub-expression elimination. LICM is loop invariant code motion. Short circuit splits basic blocks and introduces early jumps. Global Splitting is a post regalloc live range splitting pass. BUG=none R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2217773003 .
-
- 04 Aug, 2016 4 commits
-
-
Manasij Mukherjee authored
Convert adds with a constant operand to lea on -aggressive-lea BUG=none R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2135403002 .
-
Manasij Mukherjee authored
Load multiple uses of a floating point constant (between two call instructions or block start/end) into a variable before its first use. t1 = b + 1.0 t2 = c + 1.0 Gets transformed to: t0 = 1.0 t0_1 = t0 t1 = b + t0_1 t2 = c + t0_1 Call instructions reset the procedure, but uses the same variable, just in case it got a register. We are assuming floating point registers are not calee saved in general. Example, continuing from before: result = call <some function> t3 = d + 1.0 Gets transformed to: result = call <some function> t0_2 = t0 t3 = d + t0_2 BUG= none R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2208523002 .
-
Manasij Mukherjee authored
After register allocation is done once, this pass targets the variables that do not get registers, break them into multiple variables with shorter (at most spanning a basic block) live ranges. After discarding the new variables with too few uses, the register allocator is run again and the new variables that manage to get registers are inserted. BUG=None R=stichnot@chromium.org Review URL: https://codereview.chromium.org/2172313002 .
-
Thomas Lively authored
Added load/store and stack/heap/global information. BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374 R=kschimpf@google.com Review URL: https://codereview.chromium.org/2211733002 .
-