OSDN Git Service

Add a "nop filler" pass to SPU.
authorKalle Raiskila <kalle.raiskila@nokia.com>
Tue, 11 Jan 2011 09:07:54 +0000 (09:07 +0000)
committerKalle Raiskila <kalle.raiskila@nokia.com>
Tue, 11 Jan 2011 09:07:54 +0000 (09:07 +0000)
commit76020ed6f33e3b3943b25c8b5e111afece086f5c
treea82e35de61771d5249f1ae9eef88b8981b69e319
parent87376839a651ed1221dd46762701f13ad6ece0eb
Add a "nop filler" pass to SPU.

Filling no-ops is done just before emitting of assembly,
when the instruction stream is final. No-ops are inserted
to align the instructions so the dual-issue of the pipeline
is utilized. This speeds up generated code with a minimum of
1% on a select set of algorithms.

This pass may be redundant if the instruction scheduler and
all subsequent passes that modify the instruction stream
(prolog+epilog inserter, register scavenger, are there others?)
are made aware of the instruction alignments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123226 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/CellSPU/CMakeLists.txt
lib/Target/CellSPU/SPU.h
lib/Target/CellSPU/SPUInstrInfo.td
lib/Target/CellSPU/SPUNopFiller.cpp [new file with mode: 0644]
lib/Target/CellSPU/SPUTargetMachine.cpp
lib/Target/CellSPU/SPUTargetMachine.h