Commit Graph

31724 Commits

Author SHA1 Message Date
Reid Spencer
074b8a080e Make APInt a little more friendly to its users:
* Add support for + and - of a uint64_t.
  * Make trunc/sext/zext return *this so it can be chained with other ops
  * Add smin, smax, umin, umax functions for getting min/max values.

llvm-svn: 34742
2007-02-28 17:33:36 +00:00
Nate Begeman
37dc4b5bb3 Fix a typo, thanks Bill!
llvm-svn: 34741
2007-02-28 09:16:38 +00:00
Nate Begeman
e0232ec706 More Mach-O writer improvements.
llvm-svn: 34740
2007-02-28 07:40:50 +00:00
Chris Lattner
152bfa103e use high-level functions in CCState
llvm-svn: 34739
2007-02-28 07:09:55 +00:00
Chris Lattner
74bb92902e add methods for analysis of call results and return nodes.
llvm-svn: 34738
2007-02-28 07:09:40 +00:00
Chris Lattner
227b6c5d19 make use of helper functions in CCState for analyzing formals and calls.
llvm-svn: 34737
2007-02-28 07:00:42 +00:00
Chris Lattner
e74744143f add methods to analyze calls and formals.
llvm-svn: 34736
2007-02-28 06:56:37 +00:00
Chris Lattner
b5582bf984 add a newline at end of file
llvm-svn: 34735
2007-02-28 06:42:11 +00:00
Chris Lattner
d439e86078 switch LowerFastCCCallTo over to using the new fastcall description.
llvm-svn: 34734
2007-02-28 06:26:33 +00:00
Chris Lattner
66e1d1dd7e switch LowerFastCCArguments over to using the autogenerated Fastcall description.
llvm-svn: 34733
2007-02-28 06:21:19 +00:00
Chris Lattner
0bc74fd6cc add new CC_X86_32_FastCall calling conv, which describes fastcall on win32.
Factor out a CC_X86_32_Common convention, which is the part shared between
ccc, stdcall and fastcall

llvm-svn: 34732
2007-02-28 06:20:01 +00:00
Chris Lattner
3066beccb5 rearrange code
llvm-svn: 34731
2007-02-28 06:10:12 +00:00
Chris Lattner
3ed3be3b4a remove fastcc (not fastcall) support
llvm-svn: 34730
2007-02-28 06:05:16 +00:00
Chris Lattner
b9db225049 switch LowerCCCArguments over to using autogenerated CC.
llvm-svn: 34729
2007-02-28 05:46:49 +00:00
Chris Lattner
5958b176f3 simplify sret handling
llvm-svn: 34728
2007-02-28 05:39:26 +00:00
Chris Lattner
be7995953a switch LowerCCCCallTo over to using an autogenerated callingconv
llvm-svn: 34727
2007-02-28 05:31:48 +00:00
Chris Lattner
0c0a7b288e rename stuff
llvm-svn: 34726
2007-02-28 05:30:29 +00:00
Chris Lattner
6f287c6e92 rename some CCActions, add CCIfInReg
llvm-svn: 34725
2007-02-28 05:29:33 +00:00
Chris Lattner
7fb0823a7b rename some CCActions
llvm-svn: 34724
2007-02-28 05:29:06 +00:00
Chris Lattner
0706d8496c correct dependency
llvm-svn: 34723
2007-02-28 05:10:40 +00:00
Chris Lattner
ba3d273122 switch return value passing and the x86-64 calling convention information
over to being autogenerated from the X86CallingConv.td file.

llvm-svn: 34722
2007-02-28 04:55:35 +00:00
Chris Lattner
659ca56383 make subtarget references work.
llvm-svn: 34721
2007-02-28 04:51:41 +00:00
Chris Lattner
22778a3d1c implement CCPromoteToType
llvm-svn: 34720
2007-02-28 04:43:48 +00:00
Reid Spencer
ccaec8e7c4 Describe how arbitrary precision integers are written to the bytecode.
llvm-svn: 34719
2007-02-28 02:33:06 +00:00
Reid Spencer
b5cf20c939 Implement reading of arbitrary precision integers.
llvm-svn: 34718
2007-02-28 02:25:48 +00:00
Reid Spencer
90c26a31ac Implement writing of arbitrary precision integers.
llvm-svn: 34717
2007-02-28 02:25:20 +00:00
Reid Spencer
c7a686b62d Regenerate.
llvm-svn: 34716
2007-02-28 02:24:54 +00:00
Reid Spencer
7957de7949 Implement arbitrary integer constants through the use of APInt values.
Positive, negative, and hexadecimal integer constants will now return an
APInt for values having > 64 bits of precision.

llvm-svn: 34715
2007-02-28 02:24:27 +00:00
Reid Spencer
9875fc1500 Implement support for aribrary precision integers by creating two new
tokens: ESAPINTVAL and EUAPINTVAL and adding an APInt* as a semantic value.
This allows us to extend the definition of an integer constant to allow
arbitrary precision integer constant values.

llvm-svn: 34714
2007-02-28 02:23:44 +00:00
Reid Spencer
f8470272a7 getActiveWords should return the number of words, not the index of the
highest active words. Increment its result by one.

llvm-svn: 34713
2007-02-28 02:20:49 +00:00
Reid Spencer
66d0d572c2 Fix a bug in RoundDoubleToAPInt where it would force the size to 64 bits
instead of honoring the client's requested bit width.

llvm-svn: 34712
2007-02-28 01:30:08 +00:00
Evan Cheng
e8af69632f Make requiresRegisterScavenging determination on a per MachineFunction basis.
llvm-svn: 34711
2007-02-28 00:59:19 +00:00
Evan Cheng
add648e3e5 Fix test case.
llvm-svn: 34710
2007-02-28 00:36:33 +00:00
Evan Cheng
9049cd72e6 Temporary: make R12 available in ARM mode if RegScavenger is being used.
llvm-svn: 34709
2007-02-28 00:22:44 +00:00
Evan Cheng
30508919c8 Start making use of RegScavenger.
llvm-svn: 34708
2007-02-28 00:21:58 +00:00
Evan Cheng
95ae95a6a6 PEI now passes a RegScavenger ptr to eliminateFrameIndex.
llvm-svn: 34707
2007-02-28 00:21:17 +00:00
Evan Cheng
589ba3964b MRegisterInfo disowns RegScavenger. It's immutable.
llvm-svn: 34706
2007-02-28 00:17:36 +00:00
Reid Spencer
c2d433d47a Join two lines that can be joined.
llvm-svn: 34705
2007-02-27 23:49:07 +00:00
Reid Spencer
98765e17df Add some syntactic sugar.
llvm-svn: 34704
2007-02-27 23:47:33 +00:00
Reid Spencer
4aeaeaf894 Pull out the stops.
llvm-svn: 34703
2007-02-27 23:33:03 +00:00
Reid Spencer
3370b04a66 Remove some redundancy.
llvm-svn: 34702
2007-02-27 23:27:26 +00:00
Evan Cheng
ee8aca0cfa Minor tweak. Allocate r0 to r3 in reverse order, r3 is least likely to be livein to a function.
llvm-svn: 34701
2007-02-27 23:03:55 +00:00
Evan Cheng
a7e4b60b85 Some more code clean up.
llvm-svn: 34700
2007-02-27 22:58:43 +00:00
Chris Lattner
c5e2a3a80e reenable generation of CC info
llvm-svn: 34699
2007-02-27 22:12:19 +00:00
Evan Cheng
8a8dc04e7e Oops.
llvm-svn: 34698
2007-02-27 22:10:52 +00:00
Chris Lattner
cbebe4600f reapply
llvm-svn: 34697
2007-02-27 22:08:27 +00:00
Chris Lattner
bf5f3945fd *** empty log message ***
llvm-svn: 34696
2007-02-27 22:05:51 +00:00
Reid Spencer
31acef50ad Implement countLeadingOnes() and getMinSignedBits(). This helps to minimize
the bit width of negative numbers by computing the minimum bit width for a
negative value. E.g. 0x1800000000000000 could be just 0x8000000000000000

llvm-svn: 34695
2007-02-27 21:59:26 +00:00
Evan Cheng
6f0969ecb9 Back out previous commit temporarily.
llvm-svn: 34694
2007-02-27 21:47:22 +00:00
Evan Cheng
116ec30e4f Backing out
CodeGenTarget.cpp updated: 1.82 -> 1.83
Record.cpp updated: 1.55 -> 1.56
Record.h updated: 1.59 -> 1.60
TableGen.cpp updated: 1.47 -> 1.48
It's missing CallingConvEmitter.h

llvm-svn: 34693
2007-02-27 21:44:08 +00:00