Anton Korobeynikov
78ee7b78c3
Introducing external weak linkage. Darwin codegen should be added later.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32052 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-01 00:25:12 +00:00
Reid Spencer
44c030a7ee
Remove 4 FIXMEs to hack around cast-to-bool problems which no longer exist.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32051 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 23:13:36 +00:00
Anton Korobeynikov
7784ebc239
Factor out GVRequiresExtraLoad() from .h to .cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32048 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 22:42:55 +00:00
Evan Cheng
0085a28d13
- Use a different wrapper node for RIP-relative GV, etc.
...
- Proper support for both small static and PIC modes under X86-64
- Some (non-optimal) support for medium modes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32046 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 21:55:46 +00:00
Jim Laskey
2bbff6d173
better check for version
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32045 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 18:29:23 +00:00
Chris Lattner
d0a6a7a030
make it clear that this is always a zext
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32044 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 17:35:08 +00:00
Chris Lattner
6e8fbad675
One more bugfix, 3 cases of making casts explicit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32043 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 17:32:29 +00:00
Chris Lattner
9a989f0f97
Fix a bug in globalopt due to the recent cast patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32042 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 17:26:08 +00:00
Jim Laskey
2172f966ca
Change global descriptor names to provide name, full name and linkage name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32036 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 14:35:45 +00:00
Jim Laskey
749b01d5ff
Temp fix to deal gdb issue.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32035 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 11:09:42 +00:00
Evan Cheng
12a447898a
MachineInstr::setOpcode -> MachineInstr::setInstrDescriptor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32034 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:12:03 +00:00
Evan Cheng
6430bf0449
Remove the ugly SPARCV9 TargetInstrDescriptors hack.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32033 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:10:43 +00:00
Evan Cheng
67f660cb08
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
...
- Remove the ugly TargetInstrDescriptors hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32032 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:08:44 +00:00
Evan Cheng
c8306bde15
In PIC mode, GV not requiring an extra load can be used as address immediate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32028 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 23:48:14 +00:00
Evan Cheng
4946399b64
Clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32027 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 23:46:27 +00:00
Evan Cheng
d0ff02cf6f
Fix for PR1018 - Better support for X86-64 Linux in small code model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32026 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 23:19:46 +00:00
Chris Lattner
15eb329dae
Fix bug codegen'ing FP constant vectors with integer splats. Make sure the
...
created intrinsics have the right integer types. This fixes
PowerPC/2006-11-29-AltivecFPSplat.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32024 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 19:58:49 +00:00
Evan Cheng
6a16c5ab2d
Avoid inifinite looping if READCYCLECOUNTER isn't custom lowered.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32022 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 19:13:47 +00:00
Jim Laskey
36729ddd23
Eliminate unnecessary scopes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32020 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 16:55:57 +00:00
Jim Laskey
619965d32e
Offset for load of 32-bit arg in 64-bit world was incorrect.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32019 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 13:37:09 +00:00
Evan Cheng
3fa9dff2c9
Custom lower READCYCLECOUNTER for x86-64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32017 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 08:28:13 +00:00
Evan Cheng
f0b3ba6752
Allow target to custom lower READCYCLECOUNTER (when it doesn't have to be expanded).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32016 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 08:26:18 +00:00
Chris Lattner
641c523599
done
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32013 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 07:21:46 +00:00
Chris Lattner
46b96055cf
implement cast.ll:test35. With this, we recognize:
...
unsigned short swp(unsigned short a) {
return ((a & 0xff00) >> 8 | (a & 0x00ff) << 8);
}
as an idiom for bswap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32011 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 07:18:39 +00:00
Chris Lattner
6aa5eb19d5
Teach instcombine to turn trunc(srl x, c) -> srl (trunc(x), c) when safe.
...
This implements InstCombine/cast.ll:test34. It fires hundreds of times on
176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32009 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 07:04:07 +00:00
Chris Lattner
458cf462ef
Implement Regression/Transforms/InstCombine/bswap-fold.ll,
...
folding seteq (bswap(x)), c -> seteq(x,bswap(c))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32006 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 05:02:16 +00:00
Evan Cheng
b4809b2b8f
16-byte stack alignment for X86-64 ELF. Patch by Dan Gohman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32004 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 02:00:40 +00:00
Evan Cheng
f3e486e069
Fix for PR1023 by Dan Gohman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32003 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:58:12 +00:00
Chris Lattner
5d52135a14
Upgrade the ugly darwin 64-bit bswap idiom (bswap %eax / bswap %edx /
...
xchgl %eax, %edx) to llvm.bswap.i64. This compiles:
long long test2(long long A) {
return _OSSwapInt64(A);
}
to:
_test2:
movl 8(%esp), %eax
movl 4(%esp), %edx
bswapl %eax
bswapl %edx
ret
instead of:
_test2:
movl 8(%esp), %edx
movl 4(%esp), %eax
bswap %eax
bswap %edx
xchgl %eax, %edx
ret
GCC manages (with -fomit-frame-pointer) the uglier:
_test2:
subl $4, %esp
movl 8(%esp), %eax
movl 12(%esp), %edx
bswap %eax
bswap %edx
xchgl %eax, %edx
addl $4, %esp
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32001 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:48:01 +00:00
Evan Cheng
a5a57d66f5
Fix for PR1022 (folding loads of static initializers) by Dan Gohman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32000 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:38:07 +00:00
Chris Lattner
625bd052a3
Trivially lower 'bswap $0' into llvm.bswap. This fixes hexxagon with the
...
JIT on darwin/x86, which has htonl implemented as inline asm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31999 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:14:06 +00:00
Bill Wendling
8d89281989
WTF? These weird newlines got in there...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31998 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:14:00 +00:00
Chris Lattner
3f7927c84c
add a hook to allow targets to hack on inline asms to lower them to llvm
...
when they want to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31997 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:12:32 +00:00
Reid Spencer
de33124aa3
Join a split line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31996 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 01:11:01 +00:00
Bill Wendling
bdc679d564
Converted to using llvm streams instead of <iostream>s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31992 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 00:39:47 +00:00
Bill Wendling
68fe61d6a1
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31990 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 00:19:40 +00:00
Bill Wendling
a5b31ca856
Convert to using llvm streams instead of iostreams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31989 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 23:33:06 +00:00
Andrew Lenharth
f45148e113
gcc doesn't like an empty colbber list
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31987 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 23:07:32 +00:00
Bill Wendling
a21900d5a4
Use ostream instead of iostream
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31986 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:49:32 +00:00
Bill Wendling
a09362eb97
Use llvm streams instead of <iostream>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31985 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:48:48 +00:00
Bill Wendling
3e3bcbf3a0
Removed #include <iostream> and used llvm streams
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31984 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:47:12 +00:00
Bill Wendling
6f81b51021
Removed some of the iostream #includes. Moved towards converting to using
...
llvm streams
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31983 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:46:12 +00:00
Chris Lattner
d5b58c239e
Add a helper function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31981 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:32:35 +00:00
Andrew Lenharth
30579799ed
Identities are default now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31980 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:28:08 +00:00
Andrew Lenharth
85f2228454
Make identity default, and fix PR1020
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31979 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:25:32 +00:00
Reid Spencer
d4d9ab80b7
Undo the last patch until 253.perlbmk passes with these changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31977 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 20:23:51 +00:00
Evan Cheng
ead1b801e2
New entries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31976 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:59:25 +00:00
Andrew Lenharth
238581f2bb
update comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31975 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:56:02 +00:00
Andrew Lenharth
e0cf07584d
Get the asminfo for the target most closely matching the module and use that for inline asm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31974 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:53:36 +00:00
Andrew Lenharth
6c0695fc5c
X86 asm -> gcc asm translation table (incomplete)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31973 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 19:52:49 +00:00