Dan Gohman
81a148bd56
Don't emit .debug_line header data if there aren't any lines to put in it,
...
such as will happen when .loc directives are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42277 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 21:43:52 +00:00
Dan Gohman
44de9267c3
Move the Asm->EOL() call for EmitDebugARanges outside the #ifdef for
...
consistency with the other currently empty sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42276 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 21:36:21 +00:00
Dan Gohman
8549636fcf
Add support for emitting .file directives to set up file numbers for
...
use with .loc directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42275 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 21:32:18 +00:00
Dan Gohman
189f80dc25
Add a routine for emitting .file directives, for setting up
...
file numbers to use with .loc directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42272 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 20:58:13 +00:00
Dan Gohman
e40c7b0973
Use the correct result value type instead of using getValueType(0)
...
in ExpandEXTRACT_VECTOR_ELT and SplitVectorOp. This fixes an abort
in the included testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42264 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 15:54:53 +00:00
Chris Lattner
9251f13b55
When emitting .set directives, make sure the EH and Debug labels can't conflict.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42257 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 03:35:37 +00:00
Chris Lattner
b690a005c1
initialize isstore/isload fields in ctor, fixing PR1695
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42222 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-22 07:02:12 +00:00
Dale Johannesen
910993e8dc
Change APFloat::convertFromInteger to take the incoming
...
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers. Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21 22:09:37 +00:00
Chris Lattner
c369bd7c50
don't read Block after it is freed. This fixes PR1684
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42204 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21 18:25:53 +00:00
Chris Lattner
dfe8934258
initialize SetCCResultContents, fixing PR1693
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42193 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21 17:06:39 +00:00
Dale Johannesen
73328d14ac
More long double fixes. x86_64 should build now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42155 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19 23:55:34 +00:00
Dale Johannesen
f4d4832724
Fix longdouble -> uint conversion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42143 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19 17:53:26 +00:00
Evan Cheng
713a98dee8
Use struct SDep instead of std::pair for SUnit pred and succ lists. First step
...
in tracking physical register output dependencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42125 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-19 01:38:40 +00:00
Evan Cheng
e0480d2ec2
Fix a bogus splat xform:
...
shuffle <undef, undef, x, undef>, <undef, undef, undef, undef>, <2, 2, 2, 2>
!=
<undef, undef, x, undef>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42111 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-18 21:54:37 +00:00
Dale Johannesen
c7b21d520a
Prevent crash on long double.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42103 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-18 18:36:59 +00:00
Bill Wendling
ce613280f9
Don't pass back a reference to a temporary.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42086 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-18 09:10:16 +00:00
Bill Wendling
5f19cf5df8
The exception handling function info should be reset for each new
...
function. The information isn't used heavily -- it's only used at the end
of exception handling emission -- so there's no need to cache it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42078 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-18 05:03:44 +00:00
Bill Wendling
6e19896999
Objective-C was generating EH frame info like this:
...
"_-[NSString(local) isNullOrNil]".eh = 0
.no_dead_strip "_-[NSString(local) isNullOrNil]".eh
The ".eh" should be inside the quotes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42074 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-18 01:47:22 +00:00
Devang Patel
8feb1f4467
Do not hide APInt::dump() inside #ifndef NDEBUG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 22:24:00 +00:00
Devang Patel
ffe3612af4
This is not ideal but unbreaks build failure.
...
APInt::dump() is inside #ifndef NDEBUG, however SelectionDAG dump() routines are not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42047 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 20:03:03 +00:00
Chris Lattner
76c1b97e40
Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo
...
Add a new DenseMapInfo::isEqual method to allow clients to redefine
the equality predicate used when probing the hash table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 18:34:04 +00:00
Dale Johannesen
118cd9dbba
Adjust per revew comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42002 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-16 16:51:49 +00:00
Dale Johannesen
9e3d3abd93
Remove the assumption that FP's are either float or
...
double from some of the many places in the optimizers
it appears, and do something reasonable with x86
long double.
Make APInt::dump() public, remove newline, use it to
dump ConstantSDNode's.
Allow APFloats in FoldingSet.
Expand X86 backend handling of long doubles (conversions
to/from int, mostly).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14 22:26:36 +00:00
Dan Gohman
92dfe2001e
Remove isReg, isImm, and isMBB, and change all their users to use
...
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14 20:33:02 +00:00
Dan Gohman
cb648f90a2
Remove spurious consts. This fixes warnings with compilers that
...
are strict about such things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-14 20:08:19 +00:00
Chris Lattner
3d6992fc7b
Fix build problems on Cygwin (PR1652), patch by Patrick Walton.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41923 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-13 06:09:48 +00:00
Evan Cheng
6600377546
Bug fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41900 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-13 00:06:00 +00:00
Evan Cheng
6900132813
Remove dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12 23:45:46 +00:00
Evan Cheng
05e69c1f23
Yet another getTargetNode variant.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41898 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12 23:39:49 +00:00
Evan Cheng
0d8d31674f
Fixed a typo that's causing a missing kill marker.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41893 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12 23:02:04 +00:00
Dale Johannesen
9d5f456077
Revise previous patch per review comments.
...
Next round of x87 long double stuff.
Getting close now, basically works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-12 03:30:33 +00:00
Evan Cheng
6d6d352ed9
Sometimes a MI can define a register as well as defining a super-register at the
...
same time. Do not mark the "smaller" def as dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41871 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 22:34:47 +00:00
Dale Johannesen
3f6eb7419d
Add APInt interfaces to APFloat (allows directly
...
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 18:32:33 +00:00
Bill Wendling
ef4a661725
Add a bool to indicate if we should set the "indirect encoding" bit in the Dwarf
...
information for EH.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41852 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 17:20:55 +00:00
Duncan Sands
f7331b3dd7
Fold the adjust_trampoline intrinsic into
...
init_trampoline. There is now only one
trampoline intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 14:10:23 +00:00
Bill Wendling
d60da495cd
The personality function on Darwin needs a global stub. We then refer to
...
that global stub instead of doing the ".set" thingy we were doing before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41838 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-11 08:27:17 +00:00
Evan Cheng
2d9823875a
Observation of rematerialization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41809 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10 22:11:18 +00:00
Chris Lattner
61c5ff460b
Emit:
...
cmpl %eax, %ecx
setae %al
movzbl %al, %eax
instead of:
cmpl %eax, %ecx
setb %al
xorb $1, %al
movzbl %al, %eax
when using logical not of a C comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10 21:39:07 +00:00
Chris Lattner
87b51bc2b0
1. Don't call Value::getName(), which is slow.
...
2. Lower calls to fabs and friends to FABS nodes etc unless the function has
internal linkage. Before we wouldn't lower if it had a definition, which
is incorrect. This allows us to compile:
define double @fabs(double %f) {
%tmp2 = tail call double @fabs( double %f )
ret double %tmp2
}
into:
_fabs:
fabs f1, f1
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41805 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-10 21:15:22 +00:00
Dale Johannesen
907f28ce30
Implement misaligned FP loads and stores.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41786 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-08 19:29:23 +00:00
Rafael Espindola
588af2fb99
Add support for having different alignment for objects on call frames.
...
The x86-64 ABI states that objects passed on the stack have
8 byte alignment. Implement that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41768 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07 14:52:14 +00:00
Anton Korobeynikov
8806c7b1f5
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register
...
liveins and we let frontend solve type issue, not lowering code :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07 11:39:35 +00:00
Owen Anderson
718cb665ca
Add lengthof and endof templates that hide a lot of sizeof computations.
...
Patch by Sterling Stein!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07 04:06:50 +00:00
David Greene
af992f782f
Constify to catch bugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41751 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-06 19:46:46 +00:00
Dale Johannesen
43421b3dd7
Next round of APFloat changes.
...
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double. Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-06 18:13:44 +00:00
Anton Korobeynikov
325be7c608
Proper handle case, when aliasee is external weak symbol referenced only by alias itself.
...
Also, fix a case, when target doesn't have weak symbols supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41746 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-06 17:21:48 +00:00
David Greene
04fa32f9aa
Add instruction dump output. This helps find bugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41744 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-06 16:36:39 +00:00
David Greene
2c17c4d8d9
Pluggable coalescers inplementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41743 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-06 16:18:45 +00:00
Evan Cheng
dd199d29b7
Fix a memory leak.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41739 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-06 01:07:24 +00:00
Evan Cheng
f3bb2e65d1
Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41729 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-05 21:46:51 +00:00