Commit Graph

24709 Commits

Author SHA1 Message Date
Devang Patel 3d56051f70 s/RemoveUnreachableBlocks/RemoveUnreachableBlocksFromFn/g
llvm-svn: 55965
2008-09-08 22:14:17 +00:00
Dale Johannesen ea9285e643 Don't suppress no-dead-strip for used static functions.
llvm-svn: 55962
2008-09-08 21:21:49 +00:00
Anton Korobeynikov 45165ed1ac Reapply 55904: Unbreak and fix indentation
llvm-svn: 55958
2008-09-08 21:13:56 +00:00
Anton Korobeynikov 177eda0505 Reapply 55901: Drop unused variable
llvm-svn: 55957
2008-09-08 21:13:33 +00:00
Anton Korobeynikov 524820fef7 Reapply 55900: We do support EH on x86-64!
llvm-svn: 55956
2008-09-08 21:13:08 +00:00
Anton Korobeynikov 2fd24e7713 Reapply 55899: First draft of EH support on x86/64-linux
Now with fix, which prevents subtle codegen bug to trigger on darwin.
No fix for bug though, it's still there.

llvm-svn: 55955
2008-09-08 21:12:47 +00:00
Anton Korobeynikov 4112634ca6 Reapply blindly reverted 55898: Implement FRAME_TO_ARGS_OFFSET for x86-64
llvm-svn: 55954
2008-09-08 21:12:11 +00:00
Dan Gohman a333f3ccb8 Fix a few I's that were meant to be renamed to BI's.
llvm-svn: 55942
2008-09-08 20:37:59 +00:00
Bill Wendling 3871441861 Reverting r55898 as well. This wasn't reverted in the original revert...
llvm-svn: 55938
2008-09-08 19:42:32 +00:00
Bill Wendling 6fe5fe4209 Accidental commit of partial 'stack canaries' code
llvm-svn: 55937
2008-09-08 18:12:00 +00:00
Dale Johannesen 67f99f1454 Redo the 3 existing low-precision expansions to
use float constants.  An oversight by the numerics
people who supplied this.

llvm-svn: 55930
2008-09-08 18:00:26 +00:00
Bill Wendling 99b83712f3 Reverting r55898 to r55909. One of these patches was causing an ICE during the full bootstrap on Darwin:
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc
-B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/
-B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/
-B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/
-isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include
-isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include
-O2  -O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../llvm-gcc.src/gcc
-I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include
-I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include
-I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber
-I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include
-I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include
-DSHARED -m64 -DL_negdi2 -c ../../llvm-gcc.src/gcc/libgcc2.c -o
libgcc/x86_64/_negdi2_s.o
Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) &&
TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical
register live information"), function runOnMachineFunction, file
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp,
line 311.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc
-B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/
-B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/
-B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/
-isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include
-isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include
-O2  -O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../llvm-gcc.src/gcc
-I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include
-I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include
-I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber
-I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include
-I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include
-DSHARED -m64 -DL_lshrdi3 -c ../../llvm-gcc.src/gcc/libgcc2.c -o
libgcc/x86_64/_lshrdi3_s.o
../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
{standard input}:unknown:Undefined local symbol LBB21_11
{standard input}:unknown:Undefined local symbol LBB21_12
{standard input}:unknown:Undefined local symbol LBB21_13
{standard input}:unknown:Undefined local symbol LBB21_8

llvm-svn: 55928
2008-09-08 17:59:12 +00:00
Evan Cheng d172048b59 Handle calls which produce i1 results: promote to i8 but and it with 1 to get the low bit.
llvm-svn: 55925
2008-09-08 17:15:42 +00:00
Devang Patel 7518f250b9 Remove unused counter.
llvm-svn: 55924
2008-09-08 17:14:54 +00:00
Dan Gohman 1df80f6b1c In visitUREM, arrange for the temporary UDIV node to be
revisited, consistent with the code in visitSREM.

llvm-svn: 55923
2008-09-08 16:59:01 +00:00
Daniel Dunbar ede2d7d745 Add VISIBILITY_HIDDEN on SDISelAsmOperandInfo
llvm-svn: 55922
2008-09-08 16:56:08 +00:00
Dan Gohman c05dca95a2 Bitcasting two or from aggregate types is not permitted. Update
LangRef.html, and teach the verifier to check bitcast instructions.

llvm-svn: 55921
2008-09-08 16:45:59 +00:00
Dan Gohman fd18d630bc i128 and f80 are implemented for x86-64 now.
llvm-svn: 55920
2008-09-08 16:42:56 +00:00
Dan Gohman f9b2054df1 Add AsmPrinter support for i128 and larger static initializer data.
llvm-svn: 55919
2008-09-08 16:40:13 +00:00
Dan Gohman 8f658bac2f Fix copy+pastos in comments.
llvm-svn: 55918
2008-09-08 16:31:35 +00:00
Dan Gohman e19bc1844f Fix the string for ISD::UDIVREM.
llvm-svn: 55917
2008-09-08 16:30:29 +00:00
Dan Gohman 4d5b5fe812 Delete an unused variable.
llvm-svn: 55915
2008-09-08 16:28:17 +00:00
Devang Patel 538a7f479a Remove OptimizeIVType()
llvm-svn: 55913
2008-09-08 16:13:27 +00:00
Duncan Sands a9de91e066 Didn't mean to commit this change to how the
callgraph is printed.

llvm-svn: 55912
2008-09-08 16:04:03 +00:00
Evan Cheng 24776b554d Avoid redefinition and nnbreak windows build.
llvm-svn: 55911
2008-09-08 16:01:27 +00:00
Anton Korobeynikov 6a73698a85 Unbreak and fix indentation
llvm-svn: 55904
2008-09-08 14:23:34 +00:00
Anton Korobeynikov b55688d27d Drop unused variable
llvm-svn: 55901
2008-09-08 14:22:38 +00:00
Anton Korobeynikov 0316b797ea We do support EH on x86-64!
llvm-svn: 55900
2008-09-08 14:22:16 +00:00
Anton Korobeynikov 82b9540046 First draft of EH support on x86/64-linux
llvm-svn: 55899
2008-09-08 14:21:53 +00:00
Anton Korobeynikov cb0655d626 Implement FRAME_TO_ARGS_OFFSET for x86-64
llvm-svn: 55898
2008-09-08 14:21:10 +00:00
Duncan Sands b9a6f861b4 Update the callgraph correctly.
llvm-svn: 55896
2008-09-08 11:08:09 +00:00
Duncan Sands 3cf7d86556 Update the callgraph correctly in ArgumentPromotion.
llvm-svn: 55895
2008-09-08 11:07:35 +00:00
Duncan Sands 46911f1271 Reapply 55859. This doesn't change anything as
long as the callgraph is correct.  It checks
for wrong callgraphs more strictly.

llvm-svn: 55894
2008-09-08 11:05:51 +00:00
Evan Cheng e775d3526c Add fast isel physical register definition support.
llvm-svn: 55892
2008-09-08 08:38:20 +00:00
Evan Cheng 6500d1711a Add support to extend call operands when needed. Enable x86 fastisel call support.
llvm-svn: 55891
2008-09-08 06:35:17 +00:00
Bill Wendling 5f7371d7b1 Revert my previous change -- the subtraction of two constants was a no-op
before. This is taken care of in the selection DAG pass. In my opinion, this
should be in one place or the other. I.e., it should probably be removed from
the DAG combiner (along with the other arithmetic transformations on constants
that are essentially no-ops).

llvm-svn: 55889
2008-09-08 01:56:32 +00:00
Bill Wendling df81749886 Convert
// fold (sub c1, c2) -> c1-c2

from a no-op into an actual transformation.

llvm-svn: 55886
2008-09-07 11:34:47 +00:00
Duncan Sands 1ea0d2e6db Correct a comment and strip trailing whitespace.
llvm-svn: 55883
2008-09-07 09:54:09 +00:00
Evan Cheng 6c8f55c841 Initial fastisel call support for C, Fast, and X86_FastCall calling conventions. It's meant to handle "simple" calls, i.e. no byval, structret, etc. It doesn't support multi-result returns either.
Not yet turned on, it needs to support sext / zext of arguments and result.

llvm-svn: 55882
2008-09-07 09:09:33 +00:00
Evan Cheng 6f343bd543 Some code clean up.
llvm-svn: 55881
2008-09-07 09:07:23 +00:00
Evan Cheng b9a0abb129 Indentation.
llvm-svn: 55880
2008-09-07 09:04:52 +00:00
Evan Cheng 615739b991 - Doh. Pass vector by value is bad.
- Add a AnalyzeCallResult specialized for calls which produce a single value. This is used by fastisel.

llvm-svn: 55879
2008-09-07 09:02:18 +00:00
Evan Cheng b928669409 Handle x86 truncate to i8 with target hook for now.
llvm-svn: 55877
2008-09-07 08:47:42 +00:00
Nuno Lopes 421f488cb7 fix crash when the malloc/free function is defined or is a declaration with 0 parameters.
this pass doesnt seem to be used, but still it's now a little more correct

llvm-svn: 55873
2008-09-06 17:44:06 +00:00
Duncan Sands 95c2a7848a When PruneEH turned an invoke into an ordinary
call (thus changing the call site) it didn't
inform the callgraph about this.  But the
call site does matter - as shown by the testcase,
the callgraph become invalid after the inliner
ran (with an edge between two functions simply
missing), resulting in wrong deductions by
GlobalsModRef.

llvm-svn: 55872
2008-09-06 17:19:29 +00:00
Owen Anderson d41c7160d0 Fix constant pool loads, and remove broken versions of addConstantPoolReference.
llvm-svn: 55868
2008-09-06 01:11:01 +00:00
Owen Anderson 9519fb3f50 Fix the X86 addConstantPoolReference, which had the operands in the wrong order.
llvm-svn: 55867
2008-09-06 00:50:00 +00:00
Dale Johannesen 36d532abd6 Next limited float precision expansion (log2 12 bits)
llvm-svn: 55866
2008-09-05 23:49:37 +00:00
Owen Anderson 1dd2e40521 Revert r55859. This is breaking the build in the abscence of its companion commit.
llvm-svn: 55865
2008-09-05 23:36:01 +00:00
Eli Friedman a9c52c8219 Fix for PR2687: Add patterns to match sint_to_fp and fp_to_sint for <2 x
i32>.  This is a little messy, but it works.

We should really get rid of the intrinsics, though, since they map
perfectly well to standard LLVM instructions.

llvm-svn: 55864
2008-09-05 23:07:03 +00:00