[mips] MIPS32R6 compact branch support
Audit RequiredrL263444

Description

[mips] MIPS32R6 compact branch support

Summary:
MIPSR6 introduces a class of branches called compact branches. Unlike the
traditional MIPS branches which have a delay slot, compact branches do not
have a delay slot. The instruction following the compact branch is only
executed if the branch is not taken and must not be a branch.

It works by generating compact branches for MIPS32R6 when the delay slot
filler cannot fill a delay slot. Then, inspecting the generated code for
forbidden slot hazards (a compact branch with an adjacent branch or other
CTI) and inserting nops to clear this hazard.

Patch by Simon Dardis.

Reviewers: vkalintiris, dsanders

Subscribers: MatzeB, dsanders, llvm-commits

Differential Revision: http://reviews.llvm.org/D16353

Details

Auditors
dsanders
H39 Triggered Audit
Committed
dsandersMar 14 2016, 9:24 AM
Differential Revision
D16353: [mips] MIPS32R6 compact branch support
Parents
rL263443: [cmake] Fix --only-test handling
Branches
Unknown
Tags
Unknown