- 30 Dec, 2015 1 commit
-
-
John Porto authored
This is the first step towards hiding backend-specific stuff from the rest of subzero. In this CL, all the references to target-specific files (e.g., IceTargetLoweringX8632.h) are removed from target-independent files. This CL also changes the named constructors in the Target-specific classes (e.g., TargetX8632::create()) to return unique_ptrs. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1551633002 .
-
- 28 Dec, 2015 2 commits
-
-
Reed Kotler authored
This assumes patch from 1534883005 though still needs to rename validateAndGenerateBuildAttributes to dumpBuildAttributes BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1541063002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Reed Kotler authored
This is a first cut at this. More can be done and much of this is just moving what is already in the help for the commands into Doxygen comments. The documentation can be expanded to better describe the role of the various command line options. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1547743002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
- 24 Dec, 2015 1 commit
-
-
John Porto authored
Fixes filetype=asm for x8664. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4077 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1543573002 .
-
- 22 Dec, 2015 2 commits
-
-
Reed Kotler authored
there is no way for these values of build attributes to be other than 0,1 by c++ rules since they are constexpr bool. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1534883005 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
John Porto authored
After a hiatus while x32 was not available in nacl's llvm, x8664 is being revived. Rejoice! The Target is now back to where it was before: the crosstests pass, and SPEC2k builds and verifies. Makefile.standalone still has the crosstests for x8664 disabled while we wait for all the plumbing that's needed for x32 support on nacl's toolchain to be available. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4077 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1537703002 .
-
- 20 Dec, 2015 1 commit
-
-
Reed Kotler authored
BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1538173002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
- 18 Dec, 2015 9 commits
-
-
Karl Schimpf authored
BUG=None R=sehr@chromium.org Review URL: https://codereview.chromium.org/1534133003 .
-
Karl Schimpf authored
Also fixes the corresponding emit methods for vpush and vpop to match constraint that the maximum number of consecutive registers that can be pushed/popped is 16. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1532233002 .
-
Karl Schimpf authored
Both the X86 and ARM header files define "Adjuststack" in the enumeration of target specific opcodes. However, it is not used in either. Removing constant from the enumeration since it is not used. BUG= None R=sehr@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1527363004 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1530233004 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1538443003 .
-
David Sehr authored
BUG= R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1531303004 .
-
Reed Kotler authored
this fixes a lot of problems with the doxygen. for example with this, now doxygen correctly understands the cl::opt variables in ClFlags.cpp as variables, whereas previously it thought they were functions. it's possible to make the llvm includes more selective but this is a good first cut and better than including all of llvm includes. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1536773003 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Reed Kotler authored
this is added for both standard doxygen and clang assisted doxygen (which cannot be turned on yet without some additions to the third-party toolchain but can be used locally). the predefines here are the defaults when subzero is built. not having these creates the bigger issue when clang assisted parsing is enabled but should be there always. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1533963002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
Reed Kotler authored
BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1527173002 . Patch from Reed Kotler <rkotlerimgtec@gmail.com>.
-
- 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 .
-