1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

4236 Commits

Author SHA1 Message Date
Chris Lattner
93bc6e881f fix typo
llvm-svn: 30453
2006-09-18 04:58:06 +00:00
Chris Lattner
be102d68c2 add a helper method
llvm-svn: 30452
2006-09-18 04:54:57 +00:00
Anton Korobeynikov
7c2118575c Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.

llvm-svn: 30446
2006-09-17 20:25:45 +00:00
Chris Lattner
547b62a967 Add ShiftInst::isLogical/ArithmeticShift methods.
llvm-svn: 30445
2006-09-17 19:29:56 +00:00
Chris Lattner
8aa718b0ed Add new SetCondInst::isRelational/isEquality methods. Rename
Instruction::isRelational to Instruction::isComparison.

llvm-svn: 30444
2006-09-17 19:14:47 +00:00
Chris Lattner
9306fac571 Keep track of the start of MBB's in a separate map from instructions. This
is faster and is needed for future improvements.

llvm-svn: 30383
2006-09-15 03:57:23 +00:00
Devang Patel
0d540a2f9a Undo previous check-in.
Reintroduce recursive assignDFSNumber().

llvm-svn: 30380
2006-09-14 21:43:24 +00:00
Anton Korobeynikov
6e19f80688 Adding dllimport, dllexport and external weak linkage types.
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.

llvm-svn: 30374
2006-09-14 18:23:27 +00:00
Evan Cheng
489428e6f8 Add MachineConstantPoolEntry getOffset() accessor.
llvm-svn: 30325
2006-09-14 07:32:32 +00:00
Evan Cheng
b25fd42e43 The top bit is used to determine whether it's a MachineConstantPoolValue.
llvm-svn: 30324
2006-09-14 07:30:48 +00:00
Chris Lattner
31e8414b3f revert accidentally committed file
llvm-svn: 30323
2006-09-14 06:42:17 +00:00
Chris Lattner
2544818d6b Remove dead methods, add getNumBlockIDs() method
llvm-svn: 30322
2006-09-14 06:40:48 +00:00
Reid Spencer
2a3ab75d50 Add a HAVE_MACH_MACH_H #define to detect the presence of the mach/mach.h
header file on Darwin.

llvm-svn: 30319
2006-09-14 06:17:21 +00:00
Evan Cheng
b68bfafe09 Mirrors ConstantPoolSDNode.
llvm-svn: 30314
2006-09-14 05:48:39 +00:00
Devang Patel
2983c628cd Avoid recursion in assignDFSNumber(). Move def from ET-Forest.h
to Dominators.h

llvm-svn: 30309
2006-09-14 01:27:42 +00:00
Evan Cheng
499d77553a Added support for machine specific constantpool values. These are useful for
representing expressions that can only be resolved at link time, etc.

llvm-svn: 30278
2006-09-12 21:00:35 +00:00
Nick Lewycky
a2c3d7b1ca Add ability to remove nodes from DominatorTree, for when a BasicBlock
is being removed.

llvm-svn: 30270
2006-09-12 00:18:28 +00:00
Nate Begeman
1109e4a222 Behold, more work on relocations. Things are looking pretty good now.
llvm-svn: 30240
2006-09-10 23:03:44 +00:00
Chris Lattner
7005757ced Implement new fpowi node
llvm-svn: 30223
2006-09-09 05:55:44 +00:00
Nate Begeman
2dfa13e74f First pass at supporting relocations. Relocations are written correctly to
the file now, however the relocated address is currently wrong.  Fixing
that will require some deep pondering.

llvm-svn: 30207
2006-09-08 22:42:09 +00:00
Chris Lattner
98c39f8e5b add powi intrinsics.
llvm-svn: 30176
2006-09-08 06:43:00 +00:00
Jim Laskey
160a8aa339 1. Remove condition on delete.
2. Protect and outline createTargetAsmInfo.

3. Misc. kruft.

llvm-svn: 30169
2006-09-07 23:39:26 +00:00
Jim Laskey
9da25f6119 Make target asm info a property of the target machine.
llvm-svn: 30162
2006-09-07 22:06:40 +00:00
Chris Lattner
47f39eb3db Add new option to leave asm names alone
llvm-svn: 30149
2006-09-07 18:20:41 +00:00
Devang Patel
2e6c5085f8 Add getTargetTriple() that linker can use to query target architecture.
llvm-svn: 30132
2006-09-06 20:16:28 +00:00
Devang Patel
bb3ca8e494 Keep track of all modules crated using a name to module map.
Add private member function getMoudle().

llvm-svn: 30130
2006-09-06 18:50:26 +00:00
Jim Laskey
b3cfa98236 Separate target specifc asm properties from asm printers.
llvm-svn: 30127
2006-09-06 18:35:33 +00:00
Jim Laskey
6b86ef852c Separate target specific asm properties from the asm printers.
llvm-svn: 30126
2006-09-06 18:34:40 +00:00
Devang Patel
208eaf86a6 Extract target triplet from optimized module.
Untabify.

llvm-svn: 30123
2006-09-06 00:28:22 +00:00
Evan Cheng
e7875b655d IsDef can only be accessed / set if operand is a register.
llvm-svn: 30119
2006-09-05 20:20:04 +00:00
Evan Cheng
f041d2de7e Initialize IsDef of all non-register MachineOperand to false.
llvm-svn: 30116
2006-09-05 18:56:02 +00:00
Chris Lattner
9cd4e3429e Completely eliminate def&use operands. Now a register operand is EITHER a
def operand or a use operand.

llvm-svn: 30109
2006-09-05 02:31:13 +00:00
Chris Lattner
40e16d9e51 ADd getImm/setImm methods
llvm-svn: 30105
2006-09-04 23:35:22 +00:00
Chris Lattner
35f1acab3a Add some short-hand accessors
llvm-svn: 30104
2006-09-04 23:05:29 +00:00
Duraid Madina
51396ffd3e add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example

llvm-svn: 30095
2006-09-04 06:21:35 +00:00
Chris Lattner
33c9ddc91d Completely rearchitect the interface between targets and the pass manager.
This pass:

1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
   output, move all this to common code, and give targets hooks they can
   implement.
3. Commonalize the target population stuff between file emission and JIT
   emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
   paves the way for "fast -O0" stuff in the CFE later, and now LLC could
   lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
   scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
   touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
   which is now orthogonal to the fact that JIT'ing is being done.

llvm-svn: 30081
2006-09-04 04:14:57 +00:00
Chris Lattner
50f76d4c5d Add explicit doInitialization/doFinalization methods instead of making
the FunctionPassManager redo this for each function.

llvm-svn: 30079
2006-09-04 04:07:39 +00:00
Chris Lattner
2024543fb2 Eliminate target name.
llvm-svn: 30071
2006-09-03 18:44:26 +00:00
Chris Lattner
b590a41f7b Avoid beating on the mi2i map when we know the answer already.
llvm-svn: 30066
2006-09-03 08:07:11 +00:00
Chris Lattner
cc5b4bff8f Move two methods out of line, make them work when the record for a machine
instruction includes physregs.

llvm-svn: 30061
2006-09-03 00:05:09 +00:00
Chris Lattner
518f055373 Fix a typo pointed out by Gabor
llvm-svn: 30058
2006-09-02 22:27:29 +00:00
Chris Lattner
c01fbffc67 add a prototype
llvm-svn: 30051
2006-09-02 05:37:53 +00:00
Chris Lattner
dfda549a00 Iteration is required for some cases, even if they don't occur in crafty.
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll

llvm-svn: 30050
2006-09-02 05:32:53 +00:00
Chris Lattner
9ad19f6f8b new method
llvm-svn: 30048
2006-09-02 05:26:01 +00:00
Chris Lattner
89a7eadf22 remove some particularly expensive assertions
llvm-svn: 30014
2006-09-01 06:57:35 +00:00
Chris Lattner
7453a7d197 add a simple reserve method.
llvm-svn: 30011
2006-09-01 06:08:16 +00:00
Chris Lattner
0c120af606 Iterative coallescing doesn't buy us anything (we get identical results on
crafty with and without it).  Removing it speeds up live intervals 6%.

llvm-svn: 30010
2006-09-01 04:02:42 +00:00
Chris Lattner
998dd9b42e avoid calling the virtual isMoveInstr method endlessly by caching its results.
llvm-svn: 29994
2006-08-31 05:54:43 +00:00
Chris Lattner
45063c4be4 Restore source-level compatibility with clients of these functions.
llvm-svn: 29978
2006-08-30 20:47:48 +00:00
Chris Lattner
c7fb7a05bf fix 80 column issue
llvm-svn: 29972
2006-08-30 05:56:52 +00:00