]> granicus.if.org Git - llvm/commit
[mips][microMIPS] Extending size reduction pass with ADDIUSP and ADDIUR1SP
authorZoran Jovanovic <zoran.jovanovic@imgtec.com>
Fri, 14 Jul 2017 10:13:11 +0000 (10:13 +0000)
committerZoran Jovanovic <zoran.jovanovic@imgtec.com>
Fri, 14 Jul 2017 10:13:11 +0000 (10:13 +0000)
commit3a788ca0f48fe1fea0acf45f59520ae4fce87212
tree1829e321b9c7cb7e1140a09d61d96d4936b50bcc
parenta6ef55bfe256fa5686d17a051ca95b2d453eca55
[mips][microMIPS] Extending size reduction pass with ADDIUSP and ADDIUR1SP
Author: milena.vujosevic.janicic
Reviewers: sdardis
The patch extends size reduction pass for MicroMIPS.
The following instructions are examined and transformed, if possible:
ADDIU instruction is transformed into 16-bit instruction ADDIUSP
ADDIU instruction is transformed into 16-bit instruction ADDIUR1SP
Function InRange is changed to avoid left shifting of negative values, since
that caused some sanitizer tests to fail (so the previous patch
Differential Revision: https://reviews.llvm.org/D34511

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308011 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MicroMipsSizeReduction.cpp
test/CodeGen/Mips/micromips-sizereduction/micromips-addiur1sp-addiusp.ll [new file with mode: 0644]