Commit Graph

1748 Commits

Author SHA1 Message Date
Bill Wendling a883f55eca Moved the GetTargetRelocation method from PPCMachOWriter to here. It uses
non-Mach-O-specific information.

llvm-svn: 33819
2007-02-03 02:41:58 +00:00
Bill Wendling 2c350921e2 Moved the GetTargetRelocation method to the PPCMachOWriterInfo object. The
PPCMachOWriter is now trivial.

llvm-svn: 33818
2007-02-03 02:40:57 +00:00
Jim Laskey c3de9b4b14 Support for non-landing pad exception handling.
llvm-svn: 33755
2007-02-01 16:31:34 +00:00
Chris Lattner f7937005a3 Fix CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll
llvm-svn: 33732
2007-02-01 00:39:08 +00:00
Chris Lattner 37ebf9317b A relatively simple PPC optimization.
llvm-svn: 33709
2007-01-31 19:49:20 +00:00
Reid Spencer 5301e7c605 For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.

llvm-svn: 33663
2007-01-30 20:08:39 +00:00
Evan Cheng 0e083d0161 Darwin -static should codegen static ctors / dtors to .constructor / .destructor sections.
llvm-svn: 33657
2007-01-30 08:04:53 +00:00
Jim Laskey 3f9f250928 Only gather frame info if debug or eh.
llvm-svn: 33639
2007-01-29 23:20:22 +00:00
Nate Begeman eda5997cc8 Finish off bug 680, allowing targets to custom lower frame and return
address nodes.

llvm-svn: 33636
2007-01-29 22:58:52 +00:00
Nate Begeman e3b09fbbb0 We'd still like to register allocate r2 on darwin before the callee-save
regs.

llvm-svn: 33635
2007-01-29 22:57:48 +00:00
Nate Begeman 17f250005a Update some of the llvm in the readme
llvm-svn: 33630
2007-01-29 21:21:22 +00:00
Jim Laskey b4a2f05d1c Landing pad-less eh for PPC.
llvm-svn: 33622
2007-01-29 18:51:14 +00:00
Anton Korobeynikov 037c867b54 Propagate changes from my local tree. This patch includes:
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
2007-01-28 13:31:35 +00:00
Nate Begeman debcb5530c Fix a spelling error
llvm-svn: 33556
2007-01-26 22:40:50 +00:00
Nate Begeman f209495e93 Handle multiple functions, properly mangle symbols, and fix support for
scattered relocations.

llvm-svn: 33555
2007-01-26 22:39:48 +00:00
Jim Laskey c56315c2b5 Change the MachineDebugInfo to MachineModuleInfo to better reflect usage
for debugging and exception handling.

llvm-svn: 33550
2007-01-26 21:22:28 +00:00
Jim Laskey f9e5445ed4 Make LABEL a builtin opcode.
llvm-svn: 33537
2007-01-26 14:34:52 +00:00
Evan Cheng 313c2937f0 Fix comment.
llvm-svn: 33508
2007-01-25 22:48:25 +00:00
Evan Cheng 5acf2fbb43 - Tell PEI that PPC will handle stack frame rounding itself.
- Do not round up to max. alignment of stack object if it is > stack alignment.
  It will have to be handled with dynamic aligning code.

llvm-svn: 33505
2007-01-25 22:25:04 +00:00
Chris Lattner 48518548bd Fix test/CFrontend/2007-01-24-InlineAsmCModifier.c on PPC
llvm-svn: 33494
2007-01-25 02:52:50 +00:00
Jim Laskey f6c63fec92 Repair debug frames as a prelude to eh_frames. Switched to using MachineMoves
by value so that clean up is less confusing (these vectors tend to be small.)

llvm-svn: 33488
2007-01-24 18:45:13 +00:00
Bill Wendling 06a03210af Make ivars private and use getters. Have the MachOWriter return "Mach-O
Writer" for the pass name.

llvm-svn: 33483
2007-01-24 07:13:56 +00:00
Bill Wendling 40cb811cf8 Add a field for and construction of the PPCMachOWriterInfo object.
llvm-svn: 33480
2007-01-24 03:41:36 +00:00
Bill Wendling 56f1058309 Move the getJTRelocation method out of here.
llvm-svn: 33479
2007-01-24 03:40:33 +00:00
Bill Wendling a1b7b8a485 New "TargetMachOWriterInfo" class. It holds target-specific information
that the MachOWriter needs in order to do its writing stuff 'n things.

llvm-svn: 33475
2007-01-24 03:36:05 +00:00
Evan Cheng 16e58be1bc hasFP() is now a virtual method of MRegisterInfo.
llvm-svn: 33455
2007-01-23 00:57:47 +00:00
Evan Cheng 9f3a7eb9b2 Double and long preferred alignment set to 8 bytes.
llvm-svn: 33447
2007-01-22 23:11:06 +00:00
Nick Lewycky 28c5b8618a Needed to build on PPC Linux.
llvm-svn: 33352
2007-01-19 04:36:02 +00:00
Chris Lattner 889d934d00 move contents of PR587 to here.
llvm-svn: 33333
2007-01-18 07:34:57 +00:00
Bill Wendling e750f61ac5 Have the OutputBuffer take the is64Bit and isLittleEndian booleans.
llvm-svn: 33316
2007-01-18 01:23:11 +00:00
Chris Lattner c1ea85b4c4 Modify emission of jump tables on darwin to emit an extra "l" label that
delimits the boundaries of jump tables.  This lets the linker's dead code
stripping optimization do a better job.

llvm-svn: 33315
2007-01-18 01:15:58 +00:00
Bill Wendling cd9c1f035a Changed to use the OutputBuffer instead of the methods in MachO and ELF
writers.

llvm-svn: 33311
2007-01-17 22:22:31 +00:00
Bill Wendling 38ee6519b7 Revert patch.
llvm-svn: 33298
2007-01-17 09:06:13 +00:00
Bill Wendling 05e5a5ee6c Create the specified TargetObjInfo and use it.
llvm-svn: 33291
2007-01-17 03:51:37 +00:00
Bill Wendling f758157385 New "TargetObjInfo" class. This holds information that the object writers will
use to write things to the file. It's abstract so each target should implement
its own version for each writer type.

llvm-svn: 33286
2007-01-17 03:46:30 +00:00
Bill Wendling c7b2ab9bdf Instead of yet another enum indicating the "assembly language flavor",
just use the one that's in the subtarget.

llvm-svn: 33255
2007-01-16 09:29:17 +00:00
Bill Wendling e21237e59a Fix for PR1095:
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
2007-01-16 03:42:04 +00:00
Chris Lattner 3c84b551db add support for hidden visibility to darwin/ppc and linux/ppc targets
llvm-svn: 33200
2007-01-14 06:37:54 +00:00
Chris Lattner 72a56fc44c Disable the macho writer until it is 100% functional. Enabling it when
broken invites bug reports.

llvm-svn: 32961
2007-01-06 22:27:58 +00:00
Evan Cheng 8bc7ddb84d setSetCCIsExpensive is gone.
llvm-svn: 32941
2007-01-05 23:42:53 +00:00
Evan Cheng 74b46e8c05 Fix naming inconsistency.
llvm-svn: 32823
2007-01-02 21:33:40 +00:00
Jim Laskey 28663c73ef Changes from Nick Lewycky with a simplified PPCTargetAsmInfo.
llvm-svn: 32735
2006-12-21 20:26:09 +00:00
Jim Laskey 4c90a6df16 Oops.
llvm-svn: 32724
2006-12-20 21:35:00 +00:00
Jim Laskey c2c861d00e Original patch was overly complicated.
llvm-svn: 32723
2006-12-20 21:33:34 +00:00
Jim Laskey 41621a72f5 Changes to target powerpc for non-Darwin assemblers.
1. Patches from Nick Lewycky.
2. Code to filter register names and print them as numeric values on
non-Darwin systems.

llvm-svn: 32721
2006-12-20 20:56:46 +00:00
Chris Lattner 1ef9cd400d eliminate static ctors for Statistic objects.
llvm-svn: 32703
2006-12-19 22:59:26 +00:00
Rafael Espindola d7998d0e6d move ExtWeakSymbols to AsmPrinter
llvm-svn: 32648
2006-12-18 03:37:18 +00:00
Chris Lattner 360a14be02 Apply B. Scott Michel's patch for PR1054, thanks!
llvm-svn: 32630
2006-12-16 20:23:42 +00:00
Jim Laskey a0850e98ee Patterns no longer needed due to fix in the DAG combiner.
llvm-svn: 32612
2006-12-15 21:39:31 +00:00
Jim Laskey 73d307d12d Not all test cases are created equal. This fix is needed.
llvm-svn: 32605
2006-12-15 18:51:01 +00:00