Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [Sparc] Rewrite MBB's live-in registers for leaf functions. Also, add | Venkatraman Govindaraju | 2013-07-30 | 2 | -7/+20 |
| | | | | | | | | register i7 as a live-in if current function's return address is taken. This revision fixes PR16269. llvm-svn: 187433 | ||||
* | [Sparc] Use call's debugloc for the unimp instruction. | Venkatraman Govindaraju | 2013-07-30 | 1 | -1/+1 |
| | | | | llvm-svn: 187402 | ||||
* | Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector ↵ | Craig Topper | 2013-07-14 | 1 | -3/+3 |
| | | | | | | size. llvm-svn: 186274 | ||||
* | [Sparc]: Add memory operands for the frame references in the storeRegToStackSlot | Venkatraman Govindaraju | 2013-06-26 | 1 | -8/+30 |
| | | | | | | and loadRegFromStackSlot. llvm-svn: 184935 | ||||
* | The getRegForInlineAsmConstraint function should only accept MVT value types. | Chad Rosier | 2013-06-22 | 2 | -2/+2 |
| | | | | llvm-svn: 184642 | ||||
* | Access the TargetLoweringInfo from the TargetMachine object instead of ↵ | Bill Wendling | 2013-06-19 | 1 | -5/+7 |
| | | | | | | caching it. The TLI may change between functions. No functionality change. llvm-svn: 184360 | ||||
* | DebugInfo: remove target-specific Frame Index handling for DBG_VALUE ↵ | David Blaikie | 2013-06-16 | 3 | -31/+0 |
| | | | | | | | | | | MachineInstrs Frame index handling is now target-agnostic, so delete the target hooks for creation & asm printing of target-specific addressing in DBG_VALUEs and any related functions. llvm-svn: 184067 | ||||
* | [Sparc] Delete FPMover Pass and remove Fp* Pseudo-instructions from Sparc ↵ | Venkatraman Govindaraju | 2013-06-08 | 7 | -162/+61 |
| | | | | | | backend. llvm-svn: 183613 | ||||
* | Remember the anyext patterns. | Jakob Stoklund Olesen | 2013-06-07 | 1 | -0/+2 |
| | | | | llvm-svn: 183589 | ||||
* | Add missing zextloadi1 to i64 patterns. PR16721. | Jakob Stoklund Olesen | 2013-06-07 | 1 | -0/+3 |
| | | | | llvm-svn: 183587 | ||||
* | Don't cache the instruction and register info from the TargetMachine, because | Bill Wendling | 2013-06-07 | 4 | -9/+10 |
| | | | | | | | | the internals of TargetMachine could change. No functionality change intended. llvm-svn: 183565 | ||||
* | Fix a typo in asm string of BP* family of instructions. With this fix | Roman Divacky | 2013-06-07 | 1 | -1/+1 |
| | | | | | | I am able to compile/assemble/link/run /bin/echo from FreeBSD. llvm-svn: 183537 | ||||
* | [Sparc]: Use cmp instruction instead of subcc to compare integers. | Venkatraman Govindaraju | 2013-06-07 | 3 | -17/+19 |
| | | | | llvm-svn: 183463 | ||||
* | Cache the TargetLowering info object as a pointer. | Bill Wendling | 2013-06-06 | 1 | -4/+4 |
| | | | | | | | Caching it as a pointer allows us to reset it if the TargetMachine object changes. llvm-svn: 183361 | ||||
* | Sparc: No functionality change. Cleanup whitespaces, comment formatting etc., | Venkatraman Govindaraju | 2013-06-04 | 19 | -154/+157 |
| | | | | llvm-svn: 183243 | ||||
* | Sparc: Add support for indirect branch and blockaddress in Sparc backend. | Venkatraman Govindaraju | 2013-06-03 | 4 | -0/+37 |
| | | | | llvm-svn: 183094 | ||||
* | Sparc: When storing 0, use %g0 directly in the store instruction instead of | Venkatraman Govindaraju | 2013-06-03 | 2 | -0/+8 |
| | | | | | | using two instructions (sethi and store). llvm-svn: 183090 | ||||
* | Sparc: Combine add/or/sethi instruction with restore if possible. | Venkatraman Govindaraju | 2013-06-02 | 1 | -22/+177 |
| | | | | llvm-svn: 183088 | ||||
* | Sparc: Perform leaf procedure optimization by default | Venkatraman Govindaraju | 2013-06-02 | 1 | -1/+1 |
| | | | | llvm-svn: 183083 | ||||
* | Sparc: Mark functions calling llvm.vastart and llvm.returnaddress intrinsics ↵ | Venkatraman Govindaraju | 2013-06-01 | 1 | -0/+6 |
| | | | | | | as non-leaf functions. llvm-svn: 183079 | ||||
* | [Sparc] Generate correct code for leaf functions with stack objects | Venkatraman Govindaraju | 2013-06-01 | 4 | -30/+79 |
| | | | | llvm-svn: 183067 | ||||
* | Make SubRegIndex size mandatory, following r183020. | Ahmed Bougacha | 2013-05-31 | 1 | -2/+2 |
| | | | | | | | This also makes TableGen able to compute sizes/offsets of synthesized indices representing tuples. llvm-svn: 183061 | ||||
* | Order CALLSEQ_START and CALLSEQ_END nodes. | Andrew Trick | 2013-05-29 | 1 | -4/+6 |
| | | | | | | | | | | | | Fixes PR16146: gdb.base__call-ar-st.exp fails after pre-RA-sched=source fixes. Patch by Xiaoyi Guo! This also fixes an unsupported dbg.value test case. Codegen was previously incorrect but the test was passing by luck. llvm-svn: 182885 | ||||
* | SparcFrameLowering.cpp: Mark verifyLeafProcRegUse() as UNUSED. ↵ | NAKAMURA Takumi | 2013-05-29 | 1 | -1/+1 |
| | | | | | | [-Wunused-function] llvm-svn: 182850 | ||||
* | [Sparc] Add support for leaf functions in sparc backend. | Venkatraman Govindaraju | 2013-05-29 | 6 | -28/+123 |
| | | | | llvm-svn: 182822 | ||||
* | Track IR ordering of SelectionDAG nodes 2/4. | Andrew Trick | 2013-05-25 | 3 | -28/+28 |
| | | | | | | | Change SelectionDAG::getXXXNode() interfaces as well as call sites of these functions to pass in SDLoc instead of DebugLoc. llvm-svn: 182703 | ||||
* | Also expand 64-bit bitcasts. | Jakob Stoklund Olesen | 2013-05-20 | 1 | -0/+2 |
| | | | | llvm-svn: 182229 | ||||
* | Implement spill and fill of I64Regs. | Jakob Stoklund Olesen | 2013-05-20 | 1 | -2/+9 |
| | | | | llvm-svn: 182228 | ||||
* | Mark i64 SETCC as expand so it is turned into a SELECT_CC. | Jakob Stoklund Olesen | 2013-05-20 | 1 | -0/+2 |
| | | | | llvm-svn: 182227 | ||||
* | Don't use %g0 to materialize 0 directly. | Jakob Stoklund Olesen | 2013-05-19 | 2 | -4/+2 |
| | | | | | | | | The wired physreg doesn't work on tied operands like on MOVXCC. Add a README note to fix this later. llvm-svn: 182225 | ||||
* | Select i64 values with %icc conditions. | Jakob Stoklund Olesen | 2013-05-19 | 1 | -0/+5 |
| | | | | llvm-svn: 182224 | ||||
* | Add floating point selects on %xcc predicates. | Jakob Stoklund Olesen | 2013-05-19 | 1 | -0/+10 |
| | | | | llvm-svn: 182222 | ||||
* | Implement SPselectfcc for i64 operands. | Jakob Stoklund Olesen | 2013-05-19 | 2 | -27/+31 |
| | | | | | | | Also clean up the arguments to all the MOVCC instructions so the operands always are (true-val, false-val, cond-code). llvm-svn: 182221 | ||||
* | [Sparc] Rearrange integer registers' allocation order so that register ↵ | Venkatraman Govindaraju | 2013-05-19 | 2 | -10/+23 |
| | | | | | | | | allocator will use I and G registers before using L and O registers. Also, enable registers %g2-%g4 to be used in application and %g5 in 64 bit mode. llvm-svn: 182219 | ||||
* | Handle i64 FrameIndex nodes in SPARC v9 mode. | Jakob Stoklund Olesen | 2013-05-19 | 1 | -1/+1 |
| | | | | llvm-svn: 182216 | ||||
* | [Sparc] Implements hasReservedCallFrame and hasFP. | Venkatraman Govindaraju | 2013-05-17 | 2 | -1/+17 |
| | | | | | | | This is to generate correct framesetup code when the function has variable sized allocas. llvm-svn: 182108 | ||||
* | [Sparc] Prevent instructions that defines or uses %o7 to be in call's delay ↵ | Venkatraman Govindaraju | 2013-05-16 | 1 | -5/+9 |
| | | | | | | slot. llvm-svn: 182063 | ||||
* | Remove the MachineMove class. | Rafael Espindola | 2013-05-13 | 1 | -0/+1 |
| | | | | | | | | | | | | It was just a less powerful and more confusing version of MCCFIInstruction. A side effect is that, since MCCFIInstruction uses dwarf register numbers, calls to getDwarfRegNum are pushed out, which should allow further simplifications. I left the MachineModuleInfo::addFrameMove interface unchanged since this patch was already fairly big. llvm-svn: 181680 | ||||
* | Remove unused argument. | Rafael Espindola | 2013-05-10 | 2 | -3/+2 |
| | | | | llvm-svn: 181618 | ||||
* | Passing arguments to varags functions under the SPARC v9 ABI. | Jakob Stoklund Olesen | 2013-04-21 | 1 | -0/+47 |
| | | | | | | | Arguments after the fixed arguments never use the floating point registers. llvm-svn: 179987 | ||||
* | Fix the SETHIimm pattern for 64-bit code. | Jakob Stoklund Olesen | 2013-04-21 | 1 | -2/+1 |
| | | | | | | Don't ignore the high 32 bits of the immediate. llvm-svn: 179985 | ||||
* | Compile varargs functions for SPARCv9. | Jakob Stoklund Olesen | 2013-04-20 | 1 | -31/+57 |
| | | | | | | | | | | | | With a little help from the frontend, it looks like the standard va_* intrinsics can do the job. Also clean up an old bitcast hack in LowerVAARG that dealt with unaligned double loads. Load SDNodes can specify an alignment now. Still missing: Calling varargs functions with float arguments. llvm-svn: 179961 | ||||
* | Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE. | Tim Northover | 2013-04-20 | 1 | -1/+0 |
| | | | | llvm-svn: 179939 | ||||
* | Add 64-bit multiply and divide instructions for SPARC v9. | Jakob Stoklund Olesen | 2013-04-16 | 2 | -0/+42 |
| | | | | llvm-svn: 179582 | ||||
* | Use i32 for all SPARC shift amounts, even in 64-bit mode. | Jakob Stoklund Olesen | 2013-04-14 | 4 | -7/+8 |
| | | | | | | Test case by llvm-stress. llvm-svn: 179477 | ||||
* | Add support for the abs64 SPARC v9 code model. | Jakob Stoklund Olesen | 2013-04-14 | 1 | -0/+9 |
| | | | | | | For when 16 TB just isn't enough. llvm-svn: 179474 | ||||
* | Add support for the SPARC v9 abs44 code model. | Jakob Stoklund Olesen | 2013-04-14 | 1 | -6/+16 |
| | | | | | | | This is the default model for non-PIC 64-bit code. It supports text+data+bss linked anywhere in the low 16 TB of the address space. llvm-svn: 179473 | ||||
* | Use target flags for printing SPARC asm operands. | Jakob Stoklund Olesen | 2013-04-14 | 1 | -16/+34 |
| | | | | | | | 64-bit code models need multiple relocations that can't be inferred from the opcode like they can in 32-bit code. llvm-svn: 179472 | ||||
* | Also put target flags on SPARC constant pool references. | Jakob Stoklund Olesen | 2013-04-14 | 2 | -26/+36 |
| | | | | | | | Constant pool entries are accessed exactly the same way as global variables. llvm-svn: 179471 | ||||
* | Fix patterns for 64-bit pointers. | Jakob Stoklund Olesen | 2013-04-14 | 1 | -4/+2 |
| | | | | | | This fixes the pic32 code model for SPARC v9. llvm-svn: 179469 |