summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* If the Graphviz program is available, use it to visualize dot graphs.Chris Lattner2005-07-141-1/+10
| | | | llvm-svn: 22429
* Fix Alpha/2005-07-12-TwoMallocCalls.ll and PR593.Chris Lattner2005-07-131-1/+2
| | | | | | | | | | It is not safe to call LegalizeOp on something that has already been legalized. Instead, just force another iteration of legalization. This could affect all platforms but X86, as this codepath is dynamically dead on X86 (ISD::MEMSET and friends are legal). llvm-svn: 22419
* Fix test/Regression/CodeGen/Generic/2005-07-12-memcpy-i64-length.llChris Lattner2005-07-131-1/+6
| | | | llvm-svn: 22417
* Add support for 64-bit elf filesChris Lattner2005-07-121-16/+24
| | | | llvm-svn: 22400
* VC++ demands that the function returns a valueJeff Cohen2005-07-121-0/+1
| | | | llvm-svn: 22393
* Clean up code, no functionality changes.Chris Lattner2005-07-111-50/+68
| | | | llvm-svn: 22382
* Emit a symbol table entry for each function we output to the ELF file. ThisChris Lattner2005-07-111-1/+31
| | | | | | | | | | | | | allows objdump to know which function we are emitting to: 00000000 <foo>: <---- 0: b8 01 00 00 00 mov $0x1,%eax 5: 03 44 24 04 add 0x4(%esp,1),%eax 9: c3 ret ... and allows .o files to be useful for linking :) llvm-svn: 22378
* add code to emit the .text section to the section header.Chris Lattner2005-07-111-4/+89
| | | | | | | | | | | | | | | | | | | | | | | | | Add a *VERY INITIAL* machine code emitter class. This is enough to take this C function: int foo(int X) { return X +1; } and make objdump produce the following: $ objdump -d t-llvm.o t-llvm.o: file format elf32-i386 Disassembly of section .text: 00000000 <.text>: 0: b8 01 00 00 00 mov $0x1,%eax 5: 03 44 24 04 add 0x4(%esp,1),%eax 9: c3 ret Anything using branches or refering to the constant pool or requiring relocations will not work yet. llvm-svn: 22375
* Use a name mangler object to uniquify names and remove nonstandardChris Lattner2005-07-111-2/+8
| | | | | | characters from them. llvm-svn: 22371
* Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode.Chris Lattner2005-07-103-90/+60
| | | | | | | | | This is the last MVTSDNode. This allows us to eliminate a bunch of special case code for handling MVTSDNodes. llvm-svn: 22367
* Change TRUNCSTORE to use a VTSDNode operand instead of being an MVTSTDNodeChris Lattner2005-07-102-46/+38
| | | | llvm-svn: 22366
* Introduce a new VTSDNode class with the ultimate goal of eliminating theChris Lattner2005-07-102-79/+109
| | | | | | | | MVTSDNode class. This class is used to provide an operand to operators that require an extra type. We start by converting FP_ROUND_INREG and SIGN_EXTEND_INREG over to using it. llvm-svn: 22364
* Add support for emitting a .data section and .bss section.Chris Lattner2005-07-081-22/+67
| | | | | | Add support for emitting external and .bss symbols. llvm-svn: 22358
* Add support for emitting the symbol table (and its string table) of theChris Lattner2005-07-071-54/+141
| | | | | | | | | | | | | | | | | | | | module to the ELF file. Test it by adding support for emitting common symbols. This allows us to compile this: %X = weak global int 0 %Y = weak global int 0 %Z = weak global int 0 to an elf file that 'readelf's this: Symbol table '.symtab' contains 4 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000004 4 OBJECT GLOBAL DEFAULT COM X 2: 00000004 4 OBJECT GLOBAL DEFAULT COM Y 3: 00000004 4 OBJECT GLOBAL DEFAULT COM Z llvm-svn: 22343
* Make several cleanups to Andrews varargs change:Chris Lattner2005-07-051-22/+25
| | | | | | | | | | 1. Pass Value*'s into lowering methods so that the proper pointers can be added to load/stores from the valist 2. Intrinsics that return void should only return a token chain, not a token chain/retval pair. 3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone. llvm-svn: 22338
* 2 fixes:Andrew Lenharth2005-07-051-4/+13
| | | | | | | 1: Legalize operand in UINT_TO_FP expanision 2: SRA x, const i8 was not promoting the constant to shift amount type. llvm-svn: 22337
* I really didn't think this was necessary. But, Legalize wasn't running againAndrew Lenharth2005-07-021-2/+3
| | | | | | and legalizing the extload. Strange. Should fix most alpha regressions. llvm-svn: 22329
* oopsAndrew Lenharth2005-06-301-2/+1
| | | | llvm-svn: 22320
* FP EXTLOAD is not support on all archs, expand to LOAD and FP_EXTENDAndrew Lenharth2005-06-301-0/+9
| | | | llvm-svn: 22319
* restore old srcValueNode behavior and try to to work around itAndrew Lenharth2005-06-292-2/+4
| | | | llvm-svn: 22315
* tracking the instructions causing loads and stores provides more information ↵Andrew Lenharth2005-06-292-4/+2
| | | | | | than just the pointer being loaded or stored llvm-svn: 22311
* Adapt the code for handling uint -> fp conversion for the 32 bit case toAndrew Lenharth2005-06-271-0/+35
| | | | | | handling it in the 64 bit case. The two code paths should probably be merged. llvm-svn: 22302
* iniital checkin of ELFWriter implementationChris Lattner2005-06-271-0/+230
| | | | | | | | For now, the elf writer is only capable of emitting an empty elf file, with a section table and a section table string table. This will be enhanced in the future :) llvm-svn: 22291
* If we support structs as va_list, we must pass pointers to them to va_copyAndrew Lenharth2005-06-221-4/+5
| | | | | | See last commit for LangRef, this implements it on all targets. llvm-svn: 22273
* core changes for varargsAndrew Lenharth2005-06-181-18/+12
| | | | llvm-svn: 22254
* Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B forNate Begeman2005-06-161-2/+7
| | | | | | | integer types. Add a couple checks to not perform these kinds of transform on floating point values. llvm-svn: 22228
* aCC and STLport complained about this, because they're like thatDuraid Madina2005-05-151-1/+1
| | | | llvm-svn: 22053
* Add some simplifications for MULH[SU]. This allows us to compile this:Chris Lattner2005-05-151-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | long %bar(long %X) { %Y = mul long %X, 4294967297 ret long %Y } to this: l1_bar: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, %EAX add %EDX, DWORD PTR [%ESP + 8] ret instead of: l1_bar: mov %ECX, DWORD PTR [%ESP + 4] mov %EDX, 1 mov %EAX, %ECX mul %EDX add %EDX, %ECX add %EDX, DWORD PTR [%ESP + 8] mov %EAX, %ECX ret llvm-svn: 22044
* When inserting callee-save register reloads, make sure to skip over anyChris Lattner2005-05-151-0/+8
| | | | | | | terminator instructions before the 'ret' in case the target has a multi-instruction return sequence. llvm-svn: 22041
* Fix construction of ioport intrinsics, fixing X86/io.llx and io-port.llxChris Lattner2005-05-141-4/+10
| | | | llvm-svn: 22026
* allow token chain at start or end of nodeChris Lattner2005-05-141-0/+2
| | | | llvm-svn: 22020
* remove special case hacks for readport/readio from the binary operatorChris Lattner2005-05-142-13/+15
| | | | | | codepath llvm-svn: 22019
* Implement fixme's by memoizing nodes.Chris Lattner2005-05-141-9/+21
| | | | llvm-svn: 22018
* Turn this into a wrapper for a simpler version of getNode.Chris Lattner2005-05-141-8/+7
| | | | llvm-svn: 22016
* Eliminate special purpose hacks for dynamic_stack_alloc.Chris Lattner2005-05-143-20/+15
| | | | llvm-svn: 22015
* Use the general mechanism for creating multi-value nodes instead of usingChris Lattner2005-05-142-56/+60
| | | | | | special case hacks. llvm-svn: 22014
* Wrap long line, actually add node to the graph.Chris Lattner2005-05-141-1/+3
| | | | llvm-svn: 22011
* legalize target-specific operationsChris Lattner2005-05-141-0/+23
| | | | llvm-svn: 22010
* add a getNode() version that allows construction of any node type.Chris Lattner2005-05-141-9/+33
| | | | llvm-svn: 22009
* LowerOperation takes a dagChris Lattner2005-05-142-3/+3
| | | | llvm-svn: 22004
* Print the symbolic register name in a register allocator debug dump.Chris Lattner2005-05-143-17/+29
| | | | llvm-svn: 22002
* Allow targets to have a custom int64->fp expander if desiredChris Lattner2005-05-141-0/+11
| | | | llvm-svn: 22001
* Align doubles on 8-byte boundaries if possible.Chris Lattner2005-05-131-0/+9
| | | | llvm-svn: 21993
* print stack object alignment in -print-machineinstr dumpsChris Lattner2005-05-131-2/+4
| | | | llvm-svn: 21992
* Tolerate instrs with extra argsChris Lattner2005-05-131-1/+1
| | | | llvm-svn: 21982
* Add an isTailCall flag to LowerCallToChris Lattner2005-05-132-7/+11
| | | | llvm-svn: 21958
* Handle TAILCALL nodeChris Lattner2005-05-132-3/+10
| | | | llvm-svn: 21957
* Emit function entry code after lowering hte arguments.Chris Lattner2005-05-131-2/+2
| | | | llvm-svn: 21931
* Allow targets to emit code into the entry block of each functionChris Lattner2005-05-131-0/+2
| | | | llvm-svn: 21930
* allow a virtual register to be associated with live-in values.Chris Lattner2005-05-132-8/+8
| | | | llvm-svn: 21927
OpenPOWER on IntegriCloud