summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused field from FixedLenDecoderEmitter. Move NumberedInstructions ↵Craig Topper2012-03-132-5/+3
| | | | | | declaration from class to run method since its only used there and was being reinitialized anyway. llvm-svn: 152616
* lit: Pass %INCLUDE% to tests on Win32. clang may expect existence of ↵NAKAMURA Takumi2012-03-131-0/+1
| | | | | | %INCLUDE% in vcvarsall.bat. llvm-svn: 152588
* DFAPacketizerEmitter: Prune includes.Benjamin Kramer2012-03-122-4/+0
| | | | llvm-svn: 152581
* Convert more static tables of registers used by calling convention to ↵Craig Topper2012-03-111-3/+3
| | | | | | uint16_t to reduce space. llvm-svn: 152538
* Shrink and reorder some fields in MCOperandInfo to fit it in 8 bytes to ↵Craig Topper2012-03-111-5/+5
| | | | | | reduce size of static tables. llvm-svn: 152524
* Fix the x86 disassembler to at least print the lock prefix if it is the firstKevin Enderby2012-03-091-3/+3
| | | | | | | prefix. Added a FIXME to remind us this still does not work when it is not the first prefix. llvm-svn: 152414
* TableGen/CodeEmitterGen.cpp: Fix an expression of generating bitmask.NAKAMURA Takumi2012-03-091-1/+1
| | | | | | ~0U might be i32 on 32-bit hosts, then (uint64_t)~0U might not be expected as (i64)0xFFFFFFFF_FFFFFFFF, but as (i64)0x00000000_FFFFFFFF. llvm-svn: 152407
* Use uint16_t to store instruction implicit uses and defs. Reduces static data.Craig Topper2012-03-081-1/+1
| | | | llvm-svn: 152301
* Re-commit r152202 hopefully fixing the MSVC linker error.Craig Topper2012-03-084-16/+28
| | | | | | | Original commit message: Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable. llvm-svn: 152296
* Revert r152202 as it's causing internal buildbot failures.Chad Rosier2012-03-074-27/+15
| | | | | | | | | | Original commit message: Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable. llvm-svn: 152233
* Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to ↵Craig Topper2012-03-074-15/+27
| | | | | | protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable. llvm-svn: 152202
* ARM more NEON VLD/VST composite physical register refactoring.Jim Grosbach2012-03-061-1/+1
| | | | | | Register pair, all lanes subscripting. llvm-svn: 152157
* ARM refactor more NEON VLD/VST instructions to use composite physregsJim Grosbach2012-03-061-1/+1
| | | | | | | Register pair VLD1/VLD2 all-lanes instructions. Kill off more of the pseudos as a result. llvm-svn: 152150
* Fix support for encodings up to 64-bits in length. TableGen was silently ↵Owen Anderson2012-03-061-6/+6
| | | | | | truncating them to 32-bits prior to this. llvm-svn: 152148
* Use uint16_t to store indices into string table since C++ only allows 64K ↵Craig Topper2012-03-061-5/+5
| | | | | | string literals so the index into the big string can never be larger than that. llvm-svn: 152105
* Add asserts to ensure that values will fit into the tables.Craig Topper2012-03-061-1/+16
| | | | llvm-svn: 152104
* Nuke a bit of dead code.Jim Grosbach2012-03-051-2/+0
| | | | llvm-svn: 152067
* ARM Refactor VLD/VST spaced pair instructions.Jim Grosbach2012-03-051-2/+1
| | | | | | Use the new composite physical registers. llvm-svn: 152063
* ARM refactor away a bunch of VLD/VST pseudo instructions.Jim Grosbach2012-03-051-0/+1
| | | | | | | | | With the new composite physical registers to represent arbitrary pairs of DPR registers, we don't need the pseudo-registers anymore. Get rid of a bunch of them that use DPR register pairs and just use the real instructions directly instead. llvm-svn: 152045
* Shrink and reorder fields in MCRegisterClass to reduce size of static data.Craig Topper2012-03-051-5/+5
| | | | llvm-svn: 152019
* Convert more GenRegisterInfo tables from unsigned to uint16_t to reduce ↵Craig Topper2012-03-051-7/+7
| | | | | | static data size. llvm-svn: 152016
* Use uint16_t to store register overlaps to reduce static data.Craig Topper2012-03-041-2/+2
| | | | llvm-svn: 152001
* Use uint16_t instead of unsigned to store registers in reg classes. Reduces ↵Craig Topper2012-03-041-11/+11
| | | | | | static data size. llvm-svn: 151998
* Use uint16_t to store registers in callee saved register tables to reduce ↵Craig Topper2012-03-041-2/+2
| | | | | | size of static data. llvm-svn: 151996
* Use uint8_t instead of enums to store values in X86 disassembler table. ↵Craig Topper2012-03-041-8/+8
| | | | | | Shaves 150k off the size of X86DisassemblerDecoder.o llvm-svn: 151995
* Perform the string table optimization for OperandMatchEntries too.Benjamin Kramer2012-03-031-10/+28
| | | | llvm-svn: 151986
* Shrink the asm matcher tables.Benjamin Kramer2012-03-031-8/+23
| | | | | | | | | | | | - Shrink the opcode field to 16 bits. - Shrink the AsmVariantID field to 8 bits. - Store the mnemonic string in a string table, store a 16 bit index. - Store a pascal-style length byte in the string instead of a null terminator, so we can avoid calling strlen on every entry we visit during mnemonic search. Shrinks X86AsmParser.o from 434k to 201k on x86_64 and eliminates relocs from the table. llvm-svn: 151984
* StringToOffsetTable: Allow uniquing the first element, add an option to skip ↵Benjamin Kramer2012-03-031-6/+7
| | | | | | appending a terminating null. llvm-svn: 151983
* Honour --config-prefix also for lit.local.cfg.Duncan Sands2012-03-031-1/+2
| | | | llvm-svn: 151977
* Move getSubRegIndex out of generated code into MCRegisterInfo, devirtualize it.Benjamin Kramer2012-03-011-11/+0
| | | | llvm-svn: 151821
* Move TargetRegisterInfo::getSubReg() to MCRegisterInfo.Jim Grosbach2012-03-011-51/+56
| | | | | | | | Allows us to de-virtualize the function and provides access to it in the instruction printer, which is useful for handling composite physical registers (e.g., ARM register lists). llvm-svn: 151815
* Revert "Emit the SubRegTable with the smallest possible integer type."Jim Grosbach2012-03-014-14/+11
| | | | | | | | | | This reverts commit 151760. We want to move getSubReg() from TargetRegisterInfo into MCRegisterInfo, but to do that, the type of the lookup table needs to be the same for all targets. llvm-svn: 151814
* Make TargetRegisterClasses non-virtual by making the only virtual function a ↵Benjamin Kramer2012-03-011-44/+41
| | | | | | | | | | | function pointer. This allows us to make TRC non-polymorphic and value-initializable, eliminating a huge static initializer and a ton of cruft from the generated code. Shrinks ARMBaseRegisterInfo.o by ~100k. llvm-svn: 151806
* Emit the "is an intrinsic overloaded" table as a bitfield.Benjamin Kramer2012-03-011-7/+10
| | | | llvm-svn: 151792
* Emit the intrinsic modref info as a lookup table instead of a huge switch.Benjamin Kramer2012-03-011-16/+18
| | | | | | Shrinks BasicAliasAnalysis.o from 106k to 56k on i386. llvm-svn: 151781
* Implement getSubRegIndex as a linear search on the SubRegTable instead of ↵Benjamin Kramer2012-02-291-14/+6
| | | | | | | | | using a big switch. - The search bounds are constant, in the worst case (ARM target) it will scan over 30 uint16_ts. - This method isn't very hot, I had problems finding a testcase where it's called more than a dozen of times (no perf impact). llvm-svn: 151773
* Tidy up. 80 columns.Jim Grosbach2012-02-292-14/+23
| | | | llvm-svn: 151764
* Emit the SubRegTable with the smallest possible integer type.Benjamin Kramer2012-02-294-11/+14
| | | | | | Doesn't help ARM with its massive register set, but halves the size on x86 and all other targets. llvm-svn: 151760
* Tidy up. Spelling.Jim Grosbach2012-02-291-2/+2
| | | | llvm-svn: 151758
* Move the subregister indicies enum into the REGINFO_ENUM section.Jim Grosbach2012-02-291-15/+14
| | | | llvm-svn: 151756
* Switch TargetRegisterInfo::getSubReg() to use a lookup table.Jim Grosbach2012-02-291-18/+34
| | | | | | | | Instead of nested switch statements, use a lookup table. On ARM, this replaces a 23k (x86_64 release build) function with a 16k table. Its not unlikely to be faster, as well. llvm-svn: 151751
* Convert generated intrinsic attributes to use an array lookup as Chris ↵Craig Topper2012-02-281-18/+26
| | | | | | suggested in PR11951. llvm-svn: 151622
* Update tblgen command guide. Remove unused tblgen InstrEnumEmitter files.Craig Topper2012-02-273-82/+0
| | | | llvm-svn: 151513
* X86 disassembler support for jcxz, jecxz, and jrcxz. Fixes PR11643. Patch by ↵Craig Topper2012-02-273-0/+16
| | | | | | Kay Tiong Khoo. llvm-svn: 151510
* Remove 'if' from getSuperRegisters, getSubRegisters, and getOverlaps that ↵Craig Topper2012-02-231-1/+1
| | | | | | were added in r151038. llvm-svn: 151246
* Remove bad comma from .el file.Bill Wendling2012-02-221-1/+1
| | | | llvm-svn: 151189
* Add Foreach LoopDavid Greene2012-02-222-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add some data structures to represent for loops. These will be referenced during object processing to do any needed iteration and instantiation. Add foreach keyword support to the lexer. Add a mode to indicate that we're parsing a foreach loop. This allows the value parser to early-out when processing the foreach value list. Add a routine to parse foreach iteration declarations. This is separate from ParseDeclaration because the type of the named value (the iterator) doesn't match the type of the initializer value (the value list). It also needs to add two values to the foreach record: the iterator and the value list. Add parsing support for foreach. Add the code to process foreach loops and create defs based on iterator values. Allow foreach loops to be matched at the top level. When parsing an IDValue check if it is a foreach loop iterator for one of the active loops. If so, return a VarInit for it. Add Emacs keyword support for foreach. Add VIM keyword support for foreach. Add tests to check foreach operation. Add TableGen documentation for foreach. Support foreach with multiple objects. Support non-braced foreach body with one object. Do not require types for the foreach declaration. Assume the iterator type from the iteration list element type. llvm-svn: 151164
* Declare register classes as const. Fix a couple pointers to register classes ↵Craig Topper2012-02-221-3/+4
| | | | | | that weren't already const. llvm-svn: 151138
* Make all pointers to TargetRegisterClass const since they are all pointers ↵Craig Topper2012-02-221-2/+2
| | | | | | to static data that should not be modified. llvm-svn: 151134
* Reorder some members in MCRegisterClass to remove padding on 64-bit builds.Craig Topper2012-02-211-2/+2
| | | | llvm-svn: 151043
OpenPOWER on IntegriCloud