summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Allow the target to override the ISD::CondCode that's to be used to test theEvan Cheng2007-01-312-18/+29
| | | | | | result of the comparison libcall against zero. llvm-svn: 33701
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-302-2/+2
| | | | | | confusion with external linkage types. llvm-svn: 33663
* add initial support for handling inline asms with multiple constraints.Chris Lattner2007-01-291-4/+42
| | | | | | | | This doesn't do the "right thing" but will probably work in most cases. This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll. llvm-svn: 33643
* Out of line function.Jim Laskey2007-01-292-0/+8
| | | | llvm-svn: 33641
* Only gather frame info if debug or eh.Jim Laskey2007-01-291-1/+0
| | | | llvm-svn: 33639
* Finish off bug 680, allowing targets to custom lower frame and returnNate Begeman2007-01-293-24/+20
| | | | | | address nodes. llvm-svn: 33636
* Properly support cstringsNate Begeman2007-01-291-3/+8
| | | | llvm-svn: 33629
* Flag to control exception handling.Jim Laskey2007-01-291-2/+3
| | | | llvm-svn: 33628
* Disable zero landing pads for now.Jim Laskey2007-01-291-1/+2
| | | | llvm-svn: 33625
* Landing pad-less eh for PPC.Jim Laskey2007-01-291-114/+198
| | | | llvm-svn: 33622
* Use TargetData to obtain the correct size of the "size_t" argument forReid Spencer2007-01-291-9/+24
| | | | | | | | functions like memcpy, memmove and memset. Ensure only one prototype is used for these functions and that it matches the system definition by using the appropriate type for the size argument. llvm-svn: 33618
* For PR1138:Reid Spencer2007-01-281-4/+11
| | | | | | | Force memcpy to be the 32-bit variant. Since this is only used with CBE and lli which both target 32-bit machines, this should be okay. llvm-svn: 33608
* Arguments are counting from 1. not from 0. Maybe we should changeAnton Korobeynikov2007-01-281-1/+1
| | | | | | numbering somehow? E.g. make return argument the last? llvm-svn: 33606
* More cleanupAnton Korobeynikov2007-01-282-4/+5
| | | | llvm-svn: 33605
* Propagate changes from my local tree. This patch includes:Anton Korobeynikov2007-01-282-13/+33
| | | | | | | | | | | | | | | | | | | | | | 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
* Use TargetELFWriterInfo class.Bill Wendling2007-01-271-2/+2
| | | | llvm-svn: 33573
* Handle multiple functions, properly mangle symbols, and fix support forNate Begeman2007-01-261-16/+41
| | | | | | scattered relocations. llvm-svn: 33555
* rename filesJim Laskey2007-01-261-37/+37
| | | | llvm-svn: 33552
* Change the MachineDebugInfo to MachineModuleInfo to better reflect usageJim Laskey2007-01-266-65/+65
| | | | | | for debugging and exception handling. llvm-svn: 33550
* Make LABEL a builtin opcode.Jim Laskey2007-01-267-20/+24
| | | | llvm-svn: 33537
* Clarify some constants.Jim Laskey2007-01-261-4/+5
| | | | llvm-svn: 33536
* Added a MRegisterInfo hook that tells PEI the target is responsible forEvan Cheng2007-01-251-2/+3
| | | | | | rounding the stack frame to a multiple of stack alignment. llvm-svn: 33504
* 1. Remove dwarf-verbose option (now asm-verbose.)Jim Laskey2007-01-251-36/+24
| | | | | | 2. Clean up end of lines. llvm-svn: 33499
* Migrate print routines to asm to be shared by exception handling.Jim Laskey2007-01-252-369/+382
| | | | llvm-svn: 33498
* Repair debug frames as a prelude to eh_frames. Switched to using MachineMovesJim Laskey2007-01-242-16/+28
| | | | | | by value so that clean up is less confusing (these vectors tend to be small.) llvm-svn: 33488
* Use asm printer to emit alignmentJim Laskey2007-01-241-8/+2
| | | | llvm-svn: 33485
* Make ivars private and use getters. Have the MachOWriter return "Mach-OBill Wendling2007-01-241-2/+2
| | | | | | Writer" for the pass name. llvm-svn: 33483
* Renamed getTypeAlignmentShift() to getPreferredTypeAlignmentShift().Evan Cheng2007-01-241-1/+1
| | | | llvm-svn: 33482
* Use the TargetMachOWriterInfo class to get this information.Bill Wendling2007-01-241-2/+2
| | | | llvm-svn: 33478
* PEI is now responsible for adding MaxCallFrameSize to frame size and align ↵Evan Cheng2007-01-231-1/+16
| | | | | | the stack. Each target can further adjust the frame size if necessary. llvm-svn: 33460
* Switch this to use SmallSet to avoid mallocs in the common case.Chris Lattner2007-01-231-3/+3
| | | | llvm-svn: 33457
* Fix a bunch of inline asm failuresChris Lattner2007-01-231-0/+1
| | | | llvm-svn: 33454
* Remove the DoubleTy special case.Evan Cheng2007-01-221-9/+5
| | | | llvm-svn: 33449
* For PR970:Reid Spencer2007-01-211-44/+50
| | | | | | | Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! llvm-svn: 33415
* Teach TargetData to handle 'preferred' alignment for each target, and useChris Lattner2007-01-205-18/+17
| | | | | | these alignment amounts to align scalars when we can. Patch by Scott Michel! llvm-svn: 33409
* Fix for PR1108: type of insert_vector_elt index operand is PtrVT, not MVT::i32.Evan Cheng2007-01-201-3/+4
| | | | llvm-svn: 33398
* Remove an unused variable.Evan Cheng2007-01-201-1/+0
| | | | llvm-svn: 33396
* We not align the final stack slot but instead let the target do so in ↵Evan Cheng2007-01-201-7/+0
| | | | | | emitPrologue(). Each target can make adjustments to the stack frame and re-align the stack as it deem appropriate. Do not align it twice which can end up wasting stack space. llvm-svn: 33387
* GetRegForReload() now keeps track which registers have been considered and ↵Evan Cheng2007-01-191-8/+32
| | | | | | | | | | | | | | rejected during its quest to find a suitable reload register. This avoids an infinite loop in case like this: t1 := op t2, t3 t2 <- assigned r0 for use by the reload but ended up reuse r1 t3 <- assigned r1 for use by the reload but ended up reuse r0 t1 <- desires r1 sees r1 is taken by t2, tries t2's reload register r0 sees r0 is taken by t3, tries t3's reload register r1 sees r1 is taken by t2, tries t2's reload register r0 ... llvm-svn: 33382
* For PR1043:Reid Spencer2007-01-191-0/+1
| | | | | | | | | | | | | | This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120. Patch by Sheng Zhou. llvm-svn: 33370
* Remove this xform:Evan Cheng2007-01-191-7/+26
| | | | | | | | | | (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) Replace it with: (add (shl (add x, c1), c2), ) -> (add (add (shl x, c2), c1<<c2), ) This fixes test/CodeGen/ARM/smul.ll llvm-svn: 33361
* Have the OutputBuffer take the is64Bit and isLittleEndian booleans.Bill Wendling2007-01-182-14/+23
| | | | llvm-svn: 33316
* add new JumpTableSpecialLabelPrefix hook to asmprinter for jumptable emission.Chris Lattner2007-01-181-1/+9
| | | | llvm-svn: 33314
* Changed to use the OutputBuffer instead of the methods in MachO and ELFBill Wendling2007-01-172-127/+149
| | | | | | writers. llvm-svn: 33311
* Revert patch.Bill Wendling2007-01-172-156/+126
| | | | llvm-svn: 33298
* Use the methods in the TargetObjInfo object instead of internal methods.Bill Wendling2007-01-172-126/+156
| | | | llvm-svn: 33289
* Fix PR1114 and CodeGen/Generic/2007-01-15-LoadSelectCycle.ll by beingChris Lattner2007-01-161-25/+41
| | | | | | | careful when folding "c ? load p : load q" that C doesn't reach either load. If so, folding this into load (c ? p : q) will induce a cycle in the graph. llvm-svn: 33251
* add options to view the dags before the first or second pass of dag combine.Chris Lattner2007-01-161-0/+18
| | | | llvm-svn: 33249
* Fix for PR1095:Bill Wendling2007-01-161-3/+3
| | | | | | | | LLVM would miscompile ASM dialects when compiling for PPC. Added dialects for the X86 and PPC backends. It defaults to "0", the first variant of a compound inline asm expression. llvm-svn: 33246
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-152-3/+3
| | | | | | | | | rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
OpenPOWER on IntegriCloud