Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [Sparc] Do not add PC to _GLOBAL_OFFSET_TABLE_ address to access GOT in ↵ | Venkatraman Govindaraju | 2014-01-22 | 1 | -30/+94 | |
| | | | | | | | | absolute code. Fixes PR#18521 llvm-svn: 199775 | |||||
* | Add FPExt option to CCValAssign::LocInfo. When generating calling-convention | Lang Hames | 2014-01-14 | 1 | -1/+3 | |
| | | | | | | | | | | promotion code, Tablegen will now select FPExt for floating point promotions (previously it had returned AExt, which is not valid for floating point types). Any out-of-tree targets that were relying on AExt being returned for FP promotions will need to update their code check for FPExt instead. llvm-svn: 199252 | |||||
* | Make getTargetStreamer return a possibly null pointer. | Rafael Espindola | 2014-01-14 | 1 | -1/+2 | |
| | | | | | | | | | This will allow it to be called from target independent parts of the main streamer that don't know if there is a registered target streamer or not. This in turn will allow targets to perform extra actions at specified points in the interface: add extra flags for some labels, extra work during finalization, etc. llvm-svn: 199174 | |||||
* | Handle bundled terminators in isBlockOnlyReachableByFallthrough. | Jakob Stoklund Olesen | 2014-01-12 | 1 | -35/+0 | |
| | | | | | | | | | | Targets like SPARC and MIPS have delay slots and normally bundle the delay slot instruction with the corresponding terminator. Teach isBlockOnlyReachableByFallthrough to find any MBB operands on bundled terminators so SPARC doesn't need to specialize this function. llvm-svn: 199061 | |||||
* | [Sparc] Add support for parsing floating point instructions. | Venkatraman Govindaraju | 2014-01-12 | 3 | -164/+238 | |
| | | | | llvm-svn: 199033 | |||||
* | [Sparc] Replace (unsigned)-1 with ~OU as suggested by Reid Kleckner. | Venkatraman Govindaraju | 2014-01-12 | 1 | -9/+9 | |
| | | | | llvm-svn: 199031 | |||||
* | The SPARCv9 ABI returns a float in %f0. | Jakob Stoklund Olesen | 2014-01-12 | 2 | -3/+12 | |
| | | | | | | | | | | | | | | | This is different from the argument passing convention which puts the first float argument in %f1. With this patch, all returned floats are treated as if the 'inreg' flag were set. This means multiple float return values get packed in %f0, %f1, %f2, ... Note that when returning a struct in registers, clang will set the 'inreg' flag on the return value, so that behavior is unchanged. This also happens when returning a float _Complex. llvm-svn: 199028 | |||||
* | [Sparc] Add missing processor types: v7 and niagara | Venkatraman Govindaraju | 2014-01-11 | 2 | -8/+7 | |
| | | | | llvm-svn: 199024 | |||||
* | [Sparc] Bundle instruction with delay slow and its filler. Now, we can use ↵ | Venkatraman Govindaraju | 2014-01-11 | 2 | -22/+21 | |
| | | | | | | -verify-machineinstrs with SPARC backend. llvm-svn: 199014 | |||||
* | [Sparc] Emit retl/ret instead of jmp instruction. It improves the ↵ | Venkatraman Govindaraju | 2014-01-10 | 1 | -0/+6 | |
| | | | | | | readability of the assembly generated. llvm-svn: 198910 | |||||
* | [Sparc] Add support for parsing jmpl instruction and make indirect call and ↵ | Venkatraman Govindaraju | 2014-01-10 | 6 | -22/+70 | |
| | | | | | | jmp instructions as aliases to jmpl. llvm-svn: 198909 | |||||
* | [Sparc] Multiclass for loads/stores. No functionality change intended. | Venkatraman Govindaraju | 2014-01-09 | 2 | -140/+46 | |
| | | | | llvm-svn: 198893 | |||||
* | [SparcV9] Rename operands in some sparc64 instructions so that TableGen can ↵ | Venkatraman Govindaraju | 2014-01-08 | 2 | -15/+15 | |
| | | | | | | encode them correctly. llvm-svn: 198740 | |||||
* | [Sparc] Correct the mask for fixup_sparc_br19. | Venkatraman Govindaraju | 2014-01-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 198739 | |||||
* | [Sparc] Add support for parsing branch instructions and conditional moves. | Venkatraman Govindaraju | 2014-01-08 | 5 | -15/+178 | |
| | | | | llvm-svn: 198738 | |||||
* | Move the llvm mangler to lib/IR. | Rafael Espindola | 2014-01-07 | 2 | -2/+2 | |
| | | | | | | This makes it available to tools that don't link with target (like llvm-ar). llvm-svn: 198708 | |||||
* | Re-sort all of the includes with ./utils/sort_includes.py so that | Chandler Carruth | 2014-01-07 | 9 | -14/+12 | |
| | | | | | | | | | | subsequent changes are easier to review. About to fix some layering issues, and wanted to separate out the necessary churn. Also comment and sink the include of "Windows.h" in three .inc files to match the usage in Memory.inc. llvm-svn: 198685 | |||||
* | [Sparc] Add support for parsing sparc asm modifiers such as %hi, %lo etc., | Venkatraman Govindaraju | 2014-01-07 | 4 | -19/+82 | |
| | | | | | | Also, correct the offsets for FixupsKindInfo. llvm-svn: 198681 | |||||
* | [Sparc] Add support for parsing memory operands in sparc AsmParser. | Venkatraman Govindaraju | 2014-01-07 | 2 | -49/+121 | |
| | | | | llvm-svn: 198658 | |||||
* | [Sparc] Explicitly cast -1 to unsigned to fix buildbot errors. | Venkatraman Govindaraju | 2014-01-06 | 1 | -8/+8 | |
| | | | | llvm-svn: 198592 | |||||
* | [Sparc] Add initial implementation of disassembler for sparc | Venkatraman Govindaraju | 2014-01-06 | 10 | -61/+371 | |
| | | | | llvm-svn: 198591 | |||||
* | Remove unnecessary #includes. | Bill Wendling | 2014-01-06 | 1 | -1/+0 | |
| | | | | llvm-svn: 198585 | |||||
* | [Sparc] Add ELF Object Writer for Sparc. | Venkatraman Govindaraju | 2014-01-06 | 8 | -12/+287 | |
| | | | | llvm-svn: 198580 | |||||
* | Refactor function that checks that __builtin_returnaddress's argument is ↵ | Bill Wendling | 2014-01-06 | 1 | -4/+1 | |
| | | | | | | | | | constant. This moves the check up into the parent class so that all targets can use it without having to copy (and keep in sync) the same error message. llvm-svn: 198579 | |||||
* | SPARC: Make helper function static. | Benjamin Kramer | 2014-01-05 | 1 | -2/+2 | |
| | | | | llvm-svn: 198567 | |||||
* | [Sparc] Add initial implementation of MC Code emitter for sparc. | Venkatraman Govindaraju | 2014-01-05 | 10 | -4/+325 | |
| | | | | llvm-svn: 198533 | |||||
* | Emit an error message if the value passed to __builtin_returnaddress isn't a ↵ | Bill Wendling | 2014-01-05 | 1 | -0/+7 | |
| | | | | | | | | | | constant __builtin_returnaddress requires that the value passed into is be a constant. However, at -O0 even a constant expression may not be converted to a constant. Emit an error message intead of crashing. llvm-svn: 198531 | |||||
* | [Sparc] Add the initial implementation of an asm parser for sparc/sparcv9. | Venkatraman Govindaraju | 2014-01-04 | 11 | -6/+689 | |
| | | | | llvm-svn: 198484 | |||||
* | [SparcV9]: Implement RETURNADDR and FRAMEADDR lowering in SPARC64. | Venkatraman Govindaraju | 2014-01-04 | 1 | -39/+54 | |
| | | | | | | Fixes PR18356. llvm-svn: 198480 | |||||
* | Make the llvm mangler depend only on DataLayout. | Rafael Espindola | 2014-01-03 | 2 | -2/+3 | |
| | | | | | | | | | | | | | | Before this patch any program that wanted to know the final symbol name of a GlobalValue had to link with Target. This patch implements a compromise solution where the mangler uses DataLayout. This way, any tool that already links with Target (llc, clang) gets the exact behavior as before and new IR files can be mangled without linking with Target. With this patch the mangler is constructed with just a DataLayout and DataLayout is extended to include the information the Mangler needs. llvm-svn: 198438 | |||||
* | [Sparc] Handle atomic loads/stores in sparc backend. | Venkatraman Govindaraju | 2014-01-01 | 3 | -3/+101 | |
| | | | | llvm-svn: 198286 | |||||
* | [SparcV9]: Custom lower UMULO/SMULO so that the arguments are send to ↵ | Venkatraman Govindaraju | 2014-01-01 | 1 | -0/+52 | |
| | | | | | | __multi3() in correct order. llvm-svn: 198281 | |||||
* | [SparcV9]: Use SRL instead of SLL to clear top 32-bits in ctpop:i32. SLL ↵ | Venkatraman Govindaraju | 2014-01-01 | 1 | -2/+2 | |
| | | | | | | does not clear top 32 bit, only SRL does. llvm-svn: 198280 | |||||
* | [SparcV9] Use separate instruction patterns for 64 bit arithmetic ↵ | Venkatraman Govindaraju | 2013-12-29 | 3 | -40/+83 | |
| | | | | | | | | instructions instead of reusing 32 bit instruction patterns. This is done to avoid spilling the result of the 64-bit instructions to a 4-byte slot. llvm-svn: 198157 | |||||
* | [SparcV9] For codegen generated library calls that return float, set inreg ↵ | Venkatraman Govindaraju | 2013-12-29 | 1 | -0/+6 | |
| | | | | | | | | flag manually in LowerCall(). This makes the sparc backend to generate Sparc64 ABI compliant code. llvm-svn: 198149 | |||||
* | [SparcV9]: Implement lowering of long double (fp128) arguments in Sparc64 ABI. | Venkatraman Govindaraju | 2013-12-29 | 1 | -8/+60 | |
| | | | | | | Also, pass fp128 arguments to varargs through integer registers if necessary. llvm-svn: 198145 | |||||
* | [Sparc] Lower and MachineInstr to MC and print assembly using MCInstPrinter. | Venkatraman Govindaraju | 2013-12-26 | 11 | -70/+416 | |
| | | | | llvm-svn: 198030 | |||||
* | [Sparc] Add target specific MCExpr class to handle sparc specific modifiers ↵ | Venkatraman Govindaraju | 2013-12-26 | 3 | -0/+183 | |
| | | | | | | like %hi, %lo, etc., llvm-svn: 198029 | |||||
* | [Sparc] Add MCInstPrinter implementation for SPARC. | Venkatraman Govindaraju | 2013-12-25 | 8 | -4/+188 | |
| | | | | llvm-svn: 198028 | |||||
* | Add stack alignment information for Sparc. | Rafael Espindola | 2013-12-19 | 1 | -0/+5 | |
| | | | | | | | | | | | | | | | | | This matches the data in clang which was added by Jakob Stoklund Olesen in r179596. Thanks for erikjv on irc for pointing me to the relevant documents: http://sparc.com/standards/64.psabi.1.35.ps.Z page 25: Every stack frame must be 16-byte aligned. http://sparc.com/standards/psABI3rd.pdf page 3-10: Although the architecture requires only word alignment, software convention and the operating system require every stack frame to be doubleword aligned. I tried to add a test, but it looks like sparc doesn't implement dynamic stack realignment. This will be tested in clang shortly. llvm-svn: 197646 | |||||
* | The preferred alignment defaults to the abi alignment. Omit if it is the same. | Rafael Espindola | 2013-12-16 | 1 | -3/+3 | |
| | | | | llvm-svn: 197400 | |||||
* | On DataLayout, omit the default of p:64:64:64. | Rafael Espindola | 2013-12-16 | 1 | -4/+2 | |
| | | | | llvm-svn: 197397 | |||||
* | Assume defaults to produce smaller datalayout strings. | Rafael Espindola | 2013-12-13 | 1 | -3/+3 | |
| | | | | llvm-svn: 197249 | |||||
* | Move Sparc's getDataLayout out of line and add comments. | Rafael Espindola | 2013-12-11 | 2 | -10/+24 | |
| | | | | llvm-svn: 196990 | |||||
* | Prune redundant dependencies in LLVMBuild.txt. | NAKAMURA Takumi | 2013-12-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 196988 | |||||
* | [SPARCV9]: Adjust the resultant pointer of DYNAMIC_STACKALLOC with the stack ↵ | Venkatraman Govindaraju | 2013-12-09 | 1 | -3/+5 | |
| | | | | | | BIAS on sparcV9. llvm-svn: 196755 | |||||
* | [Sparc]: Implement getSetCCResultType() in SparcTargetLowering so that ↵ | Venkatraman Govindaraju | 2013-12-09 | 2 | -0/+9 | |
| | | | | | | umulo/smulo can be lowered on sparcv9 without an assertion error. llvm-svn: 196751 | |||||
* | [SparcV9]: Expand MULHU/MULHS:i64 and UMUL_LOHI/SMUL_LOHI:i64 on sparcv9. | Venkatraman Govindaraju | 2013-12-08 | 1 | -0/+7 | |
| | | | | | | This fixes PR18150. llvm-svn: 196735 | |||||
* | Refactor the setting of PrivateGlobalPrefix. | Rafael Espindola | 2013-12-02 | 1 | -2/+0 | |
| | | | | | | No functionality change. llvm-svn: 196170 | |||||
* | Change the default of AsmWriterClassName and isMCAsmWriter. | Rafael Espindola | 2013-12-02 | 1 | -0/+7 | |
| | | | | llvm-svn: 196065 |