aboutsummaryrefslogtreecommitdiffstats
path: root/utils
Commit message (Collapse)AuthorAgeFilesLines
* Add an OpReinterpret operation to TableGen's NeonEmitter.Bob Wilson2010-12-072-40/+73
| | | | | | | | An OpReinterpret entry is handled by translating it to OpCast intrinsics for all combinations of source and destination types with the same total size. This will be used to generate all the vreinterpret intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121087 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix whitespace.Bob Wilson2010-12-071-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121086 91177308-0d34-0410-b5e6-96231b3b80d8
* Add python scripts to extract debug info using LLDB and do comparison.Devang Patel2010-12-072-0/+207
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121079 91177308-0d34-0410-b5e6-96231b3b80d8
* Add fixup for Thumb1 BL/BLX instructions.Jim Grosbach2010-12-061-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121072 91177308-0d34-0410-b5e6-96231b3b80d8
* KillTheDoctor: Cleanup error_code usage.Michael J. Spencer2010-12-061-18/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120986 91177308-0d34-0410-b5e6-96231b3b80d8
* KillTheDoctor: Fix spelling.Michael J. Spencer2010-12-061-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120985 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespace.Bob Wilson2010-12-042-112/+112
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120891 91177308-0d34-0410-b5e6-96231b3b80d8
* Get Neon intrinsic names from the new "Name" field in the tblgen recordsBob Wilson2010-12-031-4/+4
| | | | | | instead of just converting the record name to lowercase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120809 91177308-0d34-0410-b5e6-96231b3b80d8
* I did it wrong. Don't disregard these encodings here.Bill Wendling2010-12-031-7/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120786 91177308-0d34-0410-b5e6-96231b3b80d8
* Ignore decode table conflicts in the tMOVgpr2tgpr, tMOVgpr2gpr, and tMOVtgpr2gprBill Wendling2010-12-031-0/+7
| | | | | | | instructions. They are handled as special moves, but encoded as a normal move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120779 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for "_lane" variants of VMUL, VMLA, and VMLS Neon intrinsics.Bob Wilson2010-12-032-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120764 91177308-0d34-0410-b5e6-96231b3b80d8
* Support using macros for Neon intrinsics implemented without builtins.Bob Wilson2010-12-031-49/+58
| | | | | | | | Intrinsics implemented with Clang builtins could already be implemented as either inline functions or macros, but intrinsics implemented directly (without builtins) could only be inline functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120763 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify code in Neon intrinsics. No functional changes intended.Bob Wilson2010-12-021-43/+37
| | | | | | | For most intrinsics, there is no need to allocate a temporary to hold the result value; just return it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120695 91177308-0d34-0410-b5e6-96231b3b80d8
* Assign arguments of Neon intrinsic macros to local temporaries.Bob Wilson2010-12-021-4/+31
| | | | | | | | Since we're casting them for the calls to the builtins, we need this to make sure their types get checked in the same way they would if the intrinsics were implemented as inline functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120693 91177308-0d34-0410-b5e6-96231b3b80d8
* Use statement expressions in Neon intrinsics defined as macros.Bob Wilson2010-12-021-9/+8
| | | | | | | This is in preparation for adding assignments to temporaries to ensure that the proper type checking is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120649 91177308-0d34-0410-b5e6-96231b3b80d8
* Add casts for splatted scalars in calls to Neon builtins.Bob Wilson2010-12-021-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120641 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a missing cast for Neon vsbl results.Bob Wilson2010-12-021-2/+3
| | | | | | | The bitwise operations are always done with unsigned values, but the result may be signed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120640 91177308-0d34-0410-b5e6-96231b3b80d8
* Add another missing cast for Neon vcombine results.Bob Wilson2010-12-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120639 91177308-0d34-0410-b5e6-96231b3b80d8
* Add casts in arm_neon.h for result values in inline functions as well as macros.Bob Wilson2010-12-021-1/+1
| | | | | | We should not rely on lax-vector-conversions for these intrinsics to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120638 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid "char" for Neon vector elements; make it explicitly signed (or unsigned).Bob Wilson2010-12-021-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120632 91177308-0d34-0410-b5e6-96231b3b80d8
* Cast scalar results of Neon macros to the correct type.Bob Wilson2010-12-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120631 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit casts for vector arguments to Neon builtins.Bob Wilson2010-12-011-5/+31
| | | | | | This avoids warnings with -Wvector-conversions. Radar 8228022. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120597 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some comments for TableGen's NeonEmitter.Bob Wilson2010-12-012-11/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120596 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup: simplify checks for integers between 2 and 4.Bob Wilson2010-12-011-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120595 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor LEApcrelJT as a pseudo-instructionlowered to a cannonical ADRJim Grosbach2010-12-011-0/+1
| | | | | | | instruction at MC lowering. Add binary encoding information for the ADR, including fixup data for the label operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120594 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify the encoding of reg+/-imm12 values that allow PC-relative encoding. ↵Owen Anderson2010-11-301-2/+0
| | | | | | | | | | This allows the Thumb2 encoding to share code with the ARM encoding, which gets use fixup support for free. It also allows us to fold away at least one codegen-only pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120481 91177308-0d34-0410-b5e6-96231b3b80d8
* Add encoding support for Thumb2 PLD and PLI instructions.Owen Anderson2010-11-301-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120449 91177308-0d34-0410-b5e6-96231b3b80d8
* The VLDMQ/VSTMQ instructions are reprented as true Pseudo-insts now (i.e.,Jim Grosbach2010-11-301-5/+0
| | | | | | | no extra encoding information), so we no longer need to special case them here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120444 91177308-0d34-0410-b5e6-96231b3b80d8
* Tidy up.Jim Grosbach2010-11-301-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120443 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete a few no longer needed references to pseudos.Jim Grosbach2010-11-301-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120441 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the encoding of VLD4-dup alignment.Bob Wilson2010-11-301-0/+1
| | | | | | | | The only reasonable way I could find to do this is to provide an alternate version of the addrmode6 operand with a different encoding function. Use it for all the VLD-dup instructions for the sake of consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120358 91177308-0d34-0410-b5e6-96231b3b80d8
* Pseudo-ize Thumb2 jump tables with explicit MC lowering to the rawJim Grosbach2010-11-291-6/+1
| | | | | | instructions. This simplifies instruction printing and disassembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120333 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename t2 TBB and TBH instructions to reference that they encode the jump tableJim Grosbach2010-11-291-1/+1
| | | | | | data. Next up, pseudo-izing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120320 91177308-0d34-0410-b5e6-96231b3b80d8
* I swear I did a make clean and make before committing all this...Michael J. Spencer2010-11-295-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120304 91177308-0d34-0410-b5e6-96231b3b80d8
* Missed another one.Michael J. Spencer2010-11-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120302 91177308-0d34-0410-b5e6-96231b3b80d8
* Merge System into Support.Michael J. Spencer2010-11-2917-27/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix copy-and-paste error in exception message.Bob Wilson2010-11-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120033 91177308-0d34-0410-b5e6-96231b3b80d8
* lit.GoogleTest: On case-insensitive filesystem, matching should be ↵NAKAMURA Takumi2010-11-191-2/+2
| | | | | | | | case-insensitive when directory name is checked with test_sub_dir. On MSVS8, ${CMAKE_CFG_INTDIR}, aka $(OutDir), has capitalized name(eg. Debug), although $(OutDir) is made with lower case(eg. debug). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119781 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix .o emission of ARM movt/movw. MCSymbolRefExpr::VK_ARM_(HI||LO)16 for the ↵Jason W Kim2010-11-181-0/+1
| | | | | | | | | | | .o path now works for ARM. Note: lo16AllZero remains in ARMInstrInfo.td - It can be factored out when Thumb movt is repaired. Existing tests cover this update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119760 91177308-0d34-0410-b5e6-96231b3b80d8
* Give the exclamation point a name instead of a number.Bill Wendling2010-11-181-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119759 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the 'x' type modifier for Neon intrinsics to force a signed integer.Bob Wilson2010-11-181-0/+5
| | | | | | | | This makes it symmetric with the 'u' modifier that forces an unsigned type. This is needed for unsigned vector shifts, where the shift amount still needs to be signed. PR8482 (Radar 8603521). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119742 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove ARM isel hacks that fold large immediates into a pair of add, sub, and,Evan Cheng2010-11-173-0/+3
| | | | | | | | | | | | | | | | | | | | | | and xor. The 32-bit move immediates can be hoisted out of loops by machine LICM but the isel hacks were preventing them. Instead, let peephole optimization pass recognize registers that are defined by immediates and the ARM target hook will fold the immediates in. Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ instructions if there are multiple uses. This happens when the 'and' is live out, machine sink would have sinked the computation and that ends up pessimizing code. The peephole pass would recognize situations where the 'and' can be toggled to define CPSR and eliminate the comparison anyway. 2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking important optimizations. rdar://8663787, rdar://8241368 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119548 91177308-0d34-0410-b5e6-96231b3b80d8
* Proper encoding for VLDM and VSTM instructions. The register lists for theseBill Wendling2010-11-171-0/+4
| | | | | | | | | | instructions have to distinguish between lists of single- and double-precision registers in order for the ASM matcher to do a proper job. In all other respects, a list of single- or double-precision registers are the same as a list of GPR registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119460 91177308-0d34-0410-b5e6-96231b3b80d8
* Use new neon_vector_type and neon_polyvector_type attributes for Neon vectors.Bob Wilson2010-11-161-7/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119406 91177308-0d34-0410-b5e6-96231b3b80d8
* Change Neon polynomial types to be signed to match GCC.Bob Wilson2010-11-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119405 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor to new GetNumElements function.Bob Wilson2010-11-161-35/+38
| | | | | | No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119404 91177308-0d34-0410-b5e6-96231b3b80d8
* Tidy up some things in <arm_neon.h>.Bob Wilson2010-11-161-94/+33
| | | | | | | | | Stop defining types with "__neon_" prefixes and then using typedefs without the prefix; there's no reason to do that anymore. Remove types that combine multiple Neon vectors and treat them as a single long vector; they are not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119369 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply "Stop using struct wrappers for Neon vector types in <arm_neon.h>."Bob Wilson2010-11-161-65/+48
| | | | | | I've temporarily disabled the failing clang test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119367 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "Stop using struct wrappers for Neon vector types in <arm_neon.h>."Bob Wilson2010-11-161-48/+65
| | | | | | It's breaking buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119363 91177308-0d34-0410-b5e6-96231b3b80d8
* This is the first step in adding sane error handling support to LLVMSystem.Michael J. Spencer2010-11-164-1192/+1
| | | | | | | | | | | | | | | | | The system API's will be shifted over to returning an error_code, and returning other return values as out parameters to the function. Code that needs to check error conditions will use the errc enum values which are the same as the posix_errno defines (EBADF, E2BIG, etc...), and are compatable with the error codes in WinError.h due to some magic in system_error. An example would be: if (error_code ec = KillEvil("Java")) { // error_code can be converted to bool. handle_error(ec); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119360 91177308-0d34-0410-b5e6-96231b3b80d8