DescriptionSubzero. Code organization.
This CL does more than any CL should.
First, it moves all target-specific classes (TargetLowering, Assembler,
and Instructions) to a target-specific namespace. For example, the
::Ice::TargetX8632 class now lives in ::Ice::X8632::TargetX8632. Same
goes for ARM32, X8664, and MIPS32. Now, we have a ton of redundant
prefixes (it should be pretty obvious that ::Ice::X8632::TargetLowering
is an X8632 target lowering), but this is definitively not something
for this CL.
Second, this CL gets rid of the excessive use of 'typename Foo::Bar'
in the X86 templates. These changes appear more intimidating than they
really are, and they were fairly mechanical.
Third, the x86?? Traitses (gollum!) classes are no longer template
instatiation. The previous X86 templates were parameterized with a
X86 TargetLowering, and they assumed that a MachineTraits<Target>
was defined for that TargetLowering. The X86 templates are now
parameterized with a TraitsType, and different backends may have
completely unrelated traits.
Fourth, the X86 templates are no longer members of
::Ice::X86Internal. Instead, each file #include'ing a Ice*X86Base.h
file need to #define X86NAMESPACE to the namespace where the backend
is being defined. With this change, the template instantiation for
X8632 live in ::Ice::X8632, and, for X8664, in ::Ice::X8664.
BUG=
R=stichnot@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=4a56686b5b56db6803f90ad53514bf2fa190d9f7
Patch Set 1 #Patch Set 2 : replaces MachineTraits with Traits. #Patch Set 3 : X86 Templates are now parameterized with the traits, not an X86 Target. #Patch Set 4 : A lot of stuff to describe. Please accept as is. #Patch Set 5 : Removes the 'typename Traits::' verbosity from the X86 Base Assembler. #Patch Set 6 : moves the X86 base instructions into an InstImpl template struct. #Patch Set 7 : Removes the typename Traits:: verbosity from X86 Inst Base. #Patch Set 8 : Removes more X86 Inst gunk #Patch Set 9 : git pull && git merge #Patch Set 10 : Removes the typename Traits:: verbosity from IceTargetLoweringX86Base. #Patch Set 11 : Eliminate the MachineTraits<> template. Each x86 Targets' traits class is unrelated to one another. #Patch Set 12 : Moves X86?? related stuff to ::Ice::X86?? #Patch Set 13 : Moves ARM32 related code to ::Ice::ARM32. #Patch Set 14 : Moves MIPS32 related code to ::Ice::MIPS32 #Patch Set 15 : Renames TempNameFoofr to TraitsType. #Patch Set 16 : make format #Patch Set 17 : Attempt to reflow comments. #Patch Set 18 : #
Total comments: 3
Messages
Total messages: 7 (4 generated)
|