History log of /external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
fc1a161d76f5cc0204bed3bce3e27cf36ac76d22 14-Aug-2012 Jim Grosbach <grosbach@apple.com> Switch the fixed-length disassembler to be table-driven.

Refactor the TableGen'erated fixed length disassemblmer to use a
table-driven state machine rather than a massive set of nested
switch() statements.

As a result, the ARM Disassembler (ARMDisassembler.cpp) builds much more
quickly and generates a smaller end result. For a Release+Asserts build on
a 16GB 3.4GHz i7 iMac w/ SSD:

Time to compile at -O2 (averaged w/ hot caches):
Previous: 35.5s
New: 8.9s

TEXT size:
Previous: 447,251
New: 297,661

Builds in 25% of the time previously required and generates code 66% of
the size.

Execution time of the disassembler is only slightly slower (7% disassembling
10 million ARM instructions, 19.6s vs 21.0s). The new implementation has
not yet been tuned, however, so the performance should almost certainly
be recoverable should it become a concern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
241b77fa451f8076e47c37212028454ad52ece15 09-Jul-2012 Akira Hatanaka <ahatanaka@mips.com> Reapply r158846.

Access mips register classes via MCRegisterInfo's functions instead of via the
TargetRegisterClasses defined in MipsGenRegisterInfo.inc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
63d10fbc89c02758cd91e3b53749e55c2bd0cf65 06-Jul-2012 Akira Hatanaka <ahatanaka@mips.com> revert r159851.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
e32cc0d5456eb7beb4030f0c0205c724a485ff31 06-Jul-2012 Akira Hatanaka <ahatanaka@mips.com> Reapply r158846.

Include file MipsGenRegisterInfo.inc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
02a227af91889d39f5e811e2e27ecce8144499eb 20-Jun-2012 Akira Hatanaka <ahatanaka@mips.com> Revert r158846.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
b66510f309077d9f616462a1696f712236ce5a22 20-Jun-2012 Akira Hatanaka <ahatanaka@mips.com> In MipsDisassembler.cpp, instead of defining register class tables, use the ones
that are generated by TableGen and are already available in
MipsGenRegisterInfo.inc. Suggested by Jakob Stoklund Olesen.

Also, fix bug in function DecodeAFGR64RegisterClass.

Patch by Vladimir Medic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
c5ce4d1d52a30c52c2ffa8d281e874db4d7f3eda 24-May-2012 Craig Topper <craig.topper@gmail.com> Use uint16_t to store registers in static tables. Matches other tables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
0998627b24a1f183920e782abf717e25cbb1a5f5 01-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Move MipsDisassembler classes into an anonymous namespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
ecdc9d5bb26936a68060f1238abc6c1d6b3c2a01 17-Apr-2012 Akira Hatanaka <ahatanaka@mips.com> Add disassembler to MIPS.

Patch by Vladimir Medic.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
9dd16d41a2fb5f7db2e2bd87ee8181159284254c 03-Apr-2012 Akira Hatanaka <ahatanaka@mips.com> Revert r153924. Delete test/MC/Disassembler/Mips and lib/Target/Mips/Disassembler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
02365945a62f368c18547da57a4ef3382beb89d0 03-Apr-2012 Akira Hatanaka <ahatanaka@mips.com> Revert r153924. There were buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
885020a7a7299c0cfc12f691bc298e0f41d02190 03-Apr-2012 Akira Hatanaka <ahatanaka@mips.com> MIPS disassembler support.

Patch by Vladimir Medic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp