retarget open64 with an object-oriented adl
Post on 15-Jan-2016
33 Views
Preview:
DESCRIPTION
TRANSCRIPT
Retarget Open64 with an Object-Oriented ADL
Zhen Cao
Tsinghua University
Introduction
expressive, concise and high-quality architecture description languages (ADLs) desired embedded processors are growing complex describing detailed architecture information for compilers ar
e more and more complicated ADL description is tedious and error-prone to mainta
in redundancy, consistency
object-oriented ADL OpenDL reduced redundancy
Related Work
Structural MIMOLA (MSSQ)
HDL-like, as a netlist of register-transfer modules Behavioral
nML (CHESS), ISDL (AVIV) instruction-set level, no explicit pipeline
Mixed MDes, Expression (Trimaran)
LISP-like, split description into instruction-set and structural LISA (CoSy), RADL
C-like, extension works add semantics to structural behavior ArchC (SystemC and C++)
storage-based consistency coverification No object-oriented mechanism supported
OpenDL Specification
Register Description Instruction Set ABI Architecture Parameters
Register Definition
Instruction Set
Primitive Instruction
Instruction Set
Compose Instuction Side-Effect Instuction
ABI
Inheritance Mechanisms
Instruction Amalgamation Pattern Abstraction Common Information Extraction
Instruction Amalgamation
instructions of a group perform much like each other except for routine behaviors syntax form, i.e. add, add., addo, addo. . form affects LT, GT, EQ, SO of CR0 o form affects SO, OV of XER
define a class to describe the four syntax forms describe primitive instructions apply syntax form class to primitive instruction to aut
omatically generate instructions with syntax forms
Instruction Amalgamation
Syntax Class Syntax Application
Pattern Abstraction
instructions of the same operation type usually form a decorator pattern add, addc, adde, addi, addic, addis carrying, extended, immediate decorators apply to mul, and, etc
abstract decorators as semantic classes designate decorators to primitive instructions
to generate decorated instructions
Pattern Abstraction
Decorator Classes Decorator Application
Common Information Extraction instructions can be sorted into a few classes
integer and float-point arithmetic, bit-operation, memory access, SIMD, data transfer between gp and control registers
and, or, nand, nor, xor extract common information out as operation
classes instructions inherit operation classes
Common Information Extraction
Operation Class Operation Application
Compression Results
Backend Framework
Experiments
Apple iBook G4 PowerPC 7447A 1.33GHz 1GB Memory
Ubuntu 8.04 kernel version 2.6.24-23-powerpc
GCC 4.1.3 Open64 4.2
GCC-Torture Results
SPEC2000 Results
Comparison of Targets
Thanks
top related