summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead variable.Bill Wendling2009-12-281-1/+0
| | | | llvm-svn: 92194
* Remove dead variable.Bill Wendling2009-12-281-2/+0
| | | | llvm-svn: 92193
* Remove dead variable.Bill Wendling2009-12-281-2/+1
| | | | llvm-svn: 92186
* Remove dead variable.Bill Wendling2009-12-281-1/+0
| | | | llvm-svn: 92185
* Remove dead variable.Bill Wendling2009-12-281-1/+0
| | | | llvm-svn: 92184
* Remove dead store. The initial value was never used, but always overridden.Bill Wendling2009-12-281-7/+6
| | | | llvm-svn: 92182
* Add an "ATTRIBUTE_UNUSED" macro (and use it). It's for variables which areBill Wendling2009-12-281-1/+2
| | | | | | | mainly used in debugging and/or assert situations. It should make the compiler and the static analyzer stop nagging us about them. llvm-svn: 92181
* PR5886: Make sure IMUL32m is marked as setting EFLAGS, so scheduling doesn'tEli Friedman2009-12-261-1/+1
| | | | | | do illegal stuff around it. No testcase because the issue is very fragile. llvm-svn: 92167
* Move kill flags when the same register occurs more than once in a sequence.Jakob Stoklund Olesen2009-12-231-1/+22
| | | | llvm-svn: 92058
* Handle undef operands properly.Jakob Stoklund Olesen2009-12-231-4/+8
| | | | llvm-svn: 92054
* Make insert position available to MergeOpsUpdate.Jakob Stoklund Olesen2009-12-231-24/+25
| | | | | | | Rearrange arguments. No functional changes llvm-svn: 92053
* Perform kill flag calculations in new method. No functional changes.Jakob Stoklund Olesen2009-12-231-12/+15
| | | | llvm-svn: 92052
* Move repeated code to a new method. No functional change.Jakob Stoklund Olesen2009-12-231-17/+47
| | | | llvm-svn: 92051
* Reapply 91904.Sanjiv Gupta2009-12-233-10/+44
| | | | llvm-svn: 91996
* Added missing patterns for subtract instruction.Sanjiv Gupta2009-12-232-34/+64
| | | | llvm-svn: 91995
* Reverting back 91904.Sanjiv Gupta2009-12-233-45/+10
| | | | llvm-svn: 91993
* really remove the instruction, don't just comment it outChris Lattner2009-12-231-7/+4
| | | | llvm-svn: 91976
* completely eliminate the MOV16r0 'instruction'. The onlyChris Lattner2009-12-234-19/+11
| | | | | | | interesting part of this is the divrem changes, which are already tested by CodeGen/X86/divrem.ll. llvm-svn: 91975
* More fixes for Visual C++. Replaced several very smallSean Callanan2009-12-231-10/+10
| | | | | | static inline functions with macros. llvm-svn: 91973
* stop pattern matching 16-bit zero's of a register to MOV16r0,Chris Lattner2009-12-231-4/+10
| | | | | | | | | instead use the appropriate subreggy thing. This generates identical code on some large apps (thanks to Evan's cross class coalescing stuff he did back in july). This means that MOV16r0 can go away completely in the future soon. llvm-svn: 91972
* Add a SPR register class to the ARM target.Jakob Stoklund Olesen2009-12-222-1/+14
| | | | | | Certain Thumb instructions require only SP (e.g. tSTRspi). llvm-svn: 91944
* Removed the "inline" keyword from the disassembler decoder,Sean Callanan2009-12-221-30/+30
| | | | | | because the Visual C++ build does not build .c files as C99 llvm-svn: 91935
* Fixes to the X86 disassembler:Sean Callanan2009-12-222-5/+17
| | | | | | | | Made LEA memory operands emit only 4 MCInst operands. Made the scale operand equal 1 for instructions that have no SIB byte. llvm-svn: 91919
* Use proper move instructions. Make the verifier happy.Jakob Stoklund Olesen2009-12-221-1/+1
| | | | llvm-svn: 91914
* Remove target attribute break-sse-dep. Instead, do not fold load into sse ↵Evan Cheng2009-12-226-42/+18
| | | | | | partial update instructions unless optimizing for size. llvm-svn: 91910
* Include based on the current path, since we already -I the X86 target's ↵Douglas Gregor2009-12-221-1/+1
| | | | | | path. Fixes CMake build llvm-svn: 91908
* While converting one of the operands to a memory operand, we need to check ↵Sanjiv Gupta2009-12-223-10/+45
| | | | | | if it is Legal and does not result into a cyclic dep. llvm-svn: 91904
* Add more plumbing. This time in the LowerArguments and "get" functions whichBill Wendling2009-12-226-8/+11
| | | | | | | | return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
* Changed REG_* to MODRM_REG_* to avoid conflictsSean Callanan2009-12-222-17/+21
| | | | | | with symbols in AuroraUX's global namespace. llvm-svn: 91879
* Fix some may-be-uninitialized var warnings.Daniel Dunbar2009-12-221-3/+3
| | | | llvm-svn: 91878
* Fixed library dependencies between the X86 disassembler andSean Callanan2009-12-223-18/+5
| | | | | | X86 codegen that were causing circular symbol dependencies. llvm-svn: 91871
* print pcrel immediates as signed values instead of unsigned so that weChris Lattner2009-12-221-3/+5
| | | | | | | | | | | | | | get things like this out of the disassembler: 0x100000ecb: callq -96 instead of: 0x100000ecb: callq 4294967200 rdar://7491123 llvm-svn: 91864
* Mark FPW as allocable when frame address is taken.Anton Korobeynikov2009-12-211-5/+43
| | | | llvm-svn: 91841
* Delete the instruction just before the function terminates for consistency sake.Evan Cheng2009-12-211-2/+3
| | | | llvm-svn: 91836
* Fix setting and default setting of code model for jit. Do thisEric Christopher2009-12-213-16/+25
| | | | | | | | | | by allowing backends to override routines that will default the JIT and Static code generation to an appropriate code model for the architecture. Should fix PR 5773. llvm-svn: 91824
* A couple minor README updates.Eli Friedman2009-12-211-14/+5
| | | | llvm-svn: 91823
* Remove unused variable (noticed by clang++).Daniel Dunbar2009-12-191-1/+0
| | | | llvm-svn: 91780
* #if 0 out X86 disassembler for now, it is breaking the build in multiple places.Daniel Dunbar2009-12-192-0/+13
| | | | llvm-svn: 91778
* Emit direction operand in binary insns that stores in memory.Sanjiv Gupta2009-12-191-1/+1
| | | | llvm-svn: 91777
* rename dprintf to dbgpritnf, in order to fix build with glibc (which already ↵Nuno Lopes2009-12-191-29/+29
| | | | | | defines dprintf in stdio.h llvm-svn: 91775
* 1. In indirect load/store insns , the name of fsr should be emitted as INDF.Sanjiv Gupta2009-12-191-5/+13
| | | | | | 2. include standard asmbly headers in generated asmbly. llvm-svn: 91768
* Fix a bunch of little errors that Clang complains about when its being pedanticDouglas Gregor2009-12-192-14/+14
| | | | llvm-svn: 91764
* Use memset instead of bzero, its more portable.Daniel Dunbar2009-12-191-2/+2
| | | | llvm-svn: 91754
* Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit Sean Callanan2009-12-199-5/+2823
| | | | | | | | | | | | | | | | | | | | incarnations), integrated into the MC framework. The disassembler is table-driven, using a custom TableGen backend to generate hierarchical tables optimized for fast decode. The disassembler consumes MemoryObjects and produces arrays of MCInsts, adhering to the abstract base class MCDisassembler (llvm/MC/MCDisassembler.h). The disassembler is documented in detail in - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime) - utils/TableGen/DisassemblerEmitter.cpp (table emitter) You can test the disassembler by running llvm-mc -disassemble for i386 or x86_64 targets. Please let me know if you encounter any problems with it. llvm-svn: 91749
* Bump alignment requirements for windows targets to achieve compartibility ↵Anton Korobeynikov2009-12-191-0/+3
| | | | | | | | with vcpp. Based on patch by Michael Beck! llvm-svn: 91745
* Changes from review:Bill Wendling2009-12-181-0/+6
| | | | | | | | | | | - Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. llvm-svn: 91727
* Fix libstdc++ build on ARM linux and part of PR5770.Rafael Espindola2009-12-181-0/+3
| | | | | | | | | | | | | | MI was not being used but it was also not being deleted, so it was kept in the garbage list. The memory itself was freed once the function code gen was done. Once in a while the codegen of another function would create an instruction on the same address. Adding it to the garbage group would work once, but when another pointer was added it would cause an assert as "Cache" was about to be pushed to Ts. For a patch that make us detect problems like this earlier, take a look at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20091214/092758.html With that patch we assert as soon and the new instruction is added to the garbage set. llvm-svn: 91691
* Fix wrong frame pointer save offset in the 64-bit PowerPC SVR4 ABI.Tilmann Scheller2009-12-181-1/+1
| | | | | | Patch contributed by Ken Werner of IBM! llvm-svn: 91681
* Add support for calls through function pointers in the 64-bit PowerPC SVR4 ABI.Tilmann Scheller2009-12-184-3/+141
| | | | | | Patch contributed by Ken Werner of IBM! llvm-svn: 91680
* On recent Intel u-arch's, folding loads into some unary SSE instructions canEvan Cheng2009-12-186-17/+82
| | | | | | | | | | | | | | | | | | | be non-optimal. To be precise, we should avoid folding loads if the instructions only update part of the destination register, and the non-updated part is not needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these instructions breaks the partial register dependency and it can improve performance. e.g. movss (%rdi), %xmm0 cvtss2sd %xmm0, %xmm0 instead of cvtss2sd (%rdi), %xmm0 An alternative method to break dependency is to clear the register first. e.g. xorps %xmm0, %xmm0 cvtss2sd (%rdi), %xmm0 llvm-svn: 91672
OpenPOWER on IntegriCloud