- 17 Dec, 2015 5 commits
-
-
David Sehr authored
BUG= R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1530423002 .
-
Karl Schimpf authored
Uses the same UDF instruction as used for function alignment. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1519873003 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1516863003 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1521133002 .
-
John Porto authored
Emitting an instruction in Subzero requires a fair amount of boilerplated code: Context.insert(<InstType>::create(Func, <Args>...)); The ordeal is worse if one needs access to the recently create instructionL auto *Instr = <InstType>::create(Func, <Args>...); Context.insert(Instr); Instr->... This CL introduces a new LoweringContext::insert() method: template <<InstType>, <Args>...> <InstType> *LoweringContext::insert(<Args>...) { auto *New = Inst::create(Node.Cfg, <Args>...); insert(New); return New; } This is essentially a syntatic sugar that allows instructions to be emitted by using Context.insert<InstType>(<Args>...); The compiler should be able to inline the calls (and get rid of the return value) when appropriate. make bloat reviews a small increase in translator code size BUG= R=sehr@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1527143003 .
-
- 16 Dec, 2015 5 commits
-
-
Jim Stichnoth authored
The llvm-mc assembler for x86 uses '#' to start a mid-line comment, while arm32 uses '@'. Those characters cause syntax errors for the other architecture. There doesn't seem to be a common character for starting mid-line comments. However, the /* ... */ style comment works in both (all?) cases. (The '#' character at the start of a line, preceded by optional whitespace, starts a comment in both cases.) BUG= none TEST= ./pydir/szbuild_spec2k.py --force -v -O2 --filetype=asm --sz=--asm-verbose --target=arm32 TEST= ./pydir/szbuild_spec2k.py --force -v -O2 --filetype=asm --sz=--asm-verbose --target=x8632 R=kschimpf@google.com Review URL: https://codereview.chromium.org/1521863002 .
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=kschimpf@google.com Review URL: https://codereview.chromium.org/1528413002 .
-
John Porto authored
The ARM32 backend used to rely on a specific register declaration order for calling convention register assignment. This CL introduces a new field in the ARM32 register tables for explicitly setting which register holds which parameter. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1508423003 .
-
Jim Stichnoth authored
Instead of output like this: Str << "\tmov\t" << ... we prefer to use string concatenation: Str << "\t" "mov\t" << ... That way, "git grep -w mov" can be used for more precise pattern matching. BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/1523873003 .
-
David Sehr authored
Allows the optimization of pairs of operations, including 64-bit compares and selects as well as preparing for idioms (minsd, maxsd, etc.). BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1497033002 .
-
- 15 Dec, 2015 2 commits
-
-
Reed Kotler authored
BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1522213002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Jim Stichnoth authored
BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1520383002 .
-
- 14 Dec, 2015 1 commit
-
-
Jim Stichnoth authored
BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1522433004 .
-
- 12 Dec, 2015 1 commit
-
-
Reed Kotler authored
This is an attempt to make IceBuildDefs more understandable in the Doxygen produced output, as well as when the various functions are later referenced from other parts of the subzero docs. If you look at the doxygen for both the file and the IceBuildDefs namespace, I think it's definitely much clearer. I'm still learning Doxygen and always see new things and more that I could have done but Rome was not built in a day. In my browser: file:///home/rkotler/nacl_dir/native_client/toolchain_build/src/subzero/docs/html/namespaceIce_1_1BuildDefs.html and file:///home/rkotler/nacl_dir/native_client/toolchain_build/src/subzero/docs/html/IceBuildDefs_8h.html BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1519113003 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
- 11 Dec, 2015 5 commits
-
-
Jim Stichnoth authored
auto *Foo = llvm::cast<Foo>(...) auto *Foo = llvm::dyn_cast<Foo>(...) auto *Foo = llvm::dyn_cast_or_null<Foo>(...) auto *Foo = Foo::create(...) Some instances may have been missed due to line breaks or "const" mismatches. BUG= none R=kschimpf@google.com Review URL: https://codereview.chromium.org/1516753008 .
-
Reed Kotler authored
BUG= R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/1514193003 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Karl Schimpf authored
Adds the data-processing "register-shifted register" form, as well as the 5-bit immediate shift for mov instructions (which unfortunately represent this form differently than other instructions). This CL fixes the ARM integrated assembler to handle all non-V (i.e. neon) instructions used by the spec2k test suite except: rsc: 59 instances. rev: 14 instances. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1516063002 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1517863002 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1516103003 .
-
- 10 Dec, 2015 2 commits
-
-
Reed Kotler authored
the comments now for the main program describe it very well and the classes and methods in the comments are clickable. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1511483005 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Jim Stichnoth authored
Defining this argument as "required=False, default=None" means it's not really optional. It's possible to provide a reasonable default like in e.g. szbuild.py. BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/1511963002 .
-
- 09 Dec, 2015 3 commits
-
-
Karl Schimpf authored
Note: There are no updates to the Dart source files, because Dart doesn't implement this instruction (data memory barrier). BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1507873004 .
-
John Porto authored
After some time of being neglected, this CL improves FP lowering for ARM32. 1) It emits vpush {list}, and vpop {list} when possible. 2) It stops saving alised Vfp registers multiple times (yes, sz used to save both D and S registers even when they aliased.) 3) Introduces Vmla (fp multiply and accumulate) and Vmls (multiply and subtract.) (1 + 2) minimally (but positively) affected SPEC. (3) caused a 2% geomean improvement. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1481133002 . -
Jim Stichnoth authored
The previous filter was too aggressive at changing "//" to "///". The new filter does that transformation more selectively, starting at a commented TODO line and ending at the next non-commented line. BUG= none Review URL: https://codereview.chromium.org/1510893004 .
-
- 08 Dec, 2015 4 commits
-
-
Karl Schimpf authored
Fixes (at least) the obvious problems with sandboxing and the integrated assembler. This includes: Added assembly instruction Nop. Fixed implementation of padWithNop. Fixed linking to local label to only fire when persistent (i.e. last pass of assembly generation). Removed restriction on single register push/pop, since the ARM integrated assembler converts it to a corresopnding str/ldr. Fixed OperandARM32FlexImm to use smallest rotation value, so that external assemblers and the ARM integrated assembler will agree on encoding. Fixed ARM sandboxing requires test in sandboxing.ll BUG=None R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1511653002 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1513543002 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1509243002 .
-
Karl Schimpf authored
Refactors code to take advantage of these instructions with Uxtb/Uxth. Note. These instructions are used by Subzero, but not Dart. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1503273002 .
-
- 07 Dec, 2015 3 commits
-
-
Reed Kotler authored
seems like these two lines are common to both paths and in fact the different classes allocated are derived from the same common base class so this makes sense to me. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1494753003 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Karl Schimpf authored
Also factors out the body of method lsl() to emitShift(), so that all forms of shift instructions can use the same code. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1501073002 .
-
Jim Stichnoth authored
Uses a nasty regexp to turn something like: // ... TODO(stichnot): Fix // this. into: /// ... @todo TODO(stichnot): Fix /// this. so that doxygen can generate the TODO list. Matches "TODO:" and "TODO " and "TODO(...". BUG= none R=rkotlerimgtec@gmail.com Review URL: https://codereview.chromium.org/1489413007 .
-
- 05 Dec, 2015 1 commit
-
-
John Porto authored
(See https://codereview.chromium.org/1491473002/ for the steps taken while implementing sandboxing.) BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1499983002 .
-
- 04 Dec, 2015 6 commits
-
-
Karl Schimpf authored
Adds RSB (immediate) and RSB (register) to the ARM integrated assembler. Also moves udiv method to corresponding (sorted) position in cpp file. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1494433005 .
-
Karl Schimpf authored
Add allowing movt to work on integer constants that aren't relocatable. Also clean up code sharing between movw and movt. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1500073002 .
-
Jim Stichnoth authored
Once again, the configuration file that comes with Doxygen seems to have defaults set for those generating API Documentation and not for documenting the code in a whole project. With this turned off, even todos and such are ignored in an anonymous namespace. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1501503002 .
-
Karl Schimpf authored
Up to now, all error handling in the ARM integrated assembler was handled by forcing a text fixup. This CL tries to minimize the use of fixup's to only be applied when there is an unimplemented form of an instruction. All other cases now generate fatal error messages. This CL should make it easier to determine what instructions still need to be extended. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1495093002 .
-
John Porto authored
This reverts commit 38ac6bee (mistakenly TBRed.) BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 Review URL: https://codereview.chromium.org/1499973002 .
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 Review URL: https://codereview.chromium.org/1491473002 .
-
- 03 Dec, 2015 2 commits
-
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1477873002 .
-
Jim Stichnoth authored
There is a consistent mistake in most of the file level subzero doxygen comments which stems from a problem with brief. Basically, there are two types of documentation in Doxygen, inline and structural documentation. File level documentation is always structural because inline documentation must either come before or after the entity and for a file that would be impossible. When you have structure documentation, the brief and detailed is handled differently and you have to explicity put the \brief qualifier in. We were only doing this for a few files so when you looked the doxygen for the source directory, the description was blank for almost all of them. If you build docs with this patch and look at the "files" and src directory, you will see all the brief descriptions now. In addition I deleted the text "This file ..." from the beginning of all the file desriptions because it's redundant when you look at the doxygen output and adds no information but takes up space in the descripton. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1488913002 .
-