oota-llvm.git
15 years agoTestcase for constant CFStrings.
Bill Wendling [Mon, 24 Nov 2008 23:28:09 +0000 (23:28 +0000)]
Testcase for constant CFStrings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59992 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorearrange and tidy some code, no functionality change.
Chris Lattner [Mon, 24 Nov 2008 22:44:16 +0000 (22:44 +0000)]
rearrange and tidy some code, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59990 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agominor cleanups to debug code, no functionality change.
Chris Lattner [Mon, 24 Nov 2008 22:40:05 +0000 (22:40 +0000)]
minor cleanups to debug code, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59989 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoreenable test
Chris Lattner [Mon, 24 Nov 2008 21:27:20 +0000 (21:27 +0000)]
reenable test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59986 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoreenable the right part of the code.
Chris Lattner [Mon, 24 Nov 2008 21:26:21 +0000 (21:26 +0000)]
reenable the right part of the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59985 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTemporarily XFAIL this test. r59976 and r59972 broke it.
Bill Wendling [Mon, 24 Nov 2008 20:43:33 +0000 (20:43 +0000)]
Temporarily XFAIL this test. r59976 and r59972 broke it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59981 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove the scheduler constructor functions to SchedulerRegistry.h, to
Dan Gohman [Mon, 24 Nov 2008 19:53:21 +0000 (19:53 +0000)]
Move the scheduler constructor functions to SchedulerRegistry.h, to
simplify header dependencies for front-ends that just want to choose
a scheduler and don't need all the scheduling machinery declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59978 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix an unused-parameter warning.
Dan Gohman [Mon, 24 Nov 2008 19:51:59 +0000 (19:51 +0000)]
Fix an unused-parameter warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59977 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorevert an accidental commit, this fixes the regression on test/CodeGen/X86/isel-sink.ll
Chris Lattner [Mon, 24 Nov 2008 19:40:34 +0000 (19:40 +0000)]
revert an accidental commit, this fixes the regression on test/CodeGen/X86/isel-sink.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59976 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix 3113: If we have a dead cyclic PHI, replace the whole thing
Chris Lattner [Mon, 24 Nov 2008 19:25:36 +0000 (19:25 +0000)]
Fix 3113: If we have a dead cyclic PHI, replace the whole thing
with an undef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59972 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago- Make lowering of "add with overflow" customizable by back-ends.
Bill Wendling [Mon, 24 Nov 2008 19:21:46 +0000 (19:21 +0000)]
- Make lowering of "add with overflow" customizable by back-ends.
- Mark "add with overflow" as having a custom lowering for X86. Give it a null
  lowering representation for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59971 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU:
Scott Michel [Mon, 24 Nov 2008 18:20:46 +0000 (18:20 +0000)]
CellSPU:
(a) Slight rethink on i64 zero/sign/any extend code - use a shuffle to
    directly zero-extend i32 to i64, but use rotates and shifts for
    sign extension. Also ensure unified register consistency.
(b) Add new test harness for i64 operations: i64ops.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59970 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCheck in the rest of this change. The isAntiDep flag needs to be passed
Dan Gohman [Mon, 24 Nov 2008 17:33:52 +0000 (17:33 +0000)]
Check in the rest of this change. The isAntiDep flag needs to be passed
to removePred because an SUnit can both data-depend and anti-depend
on the same SUnit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59969 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPass the isAntiDep argument.
Dan Gohman [Mon, 24 Nov 2008 17:24:27 +0000 (17:24 +0000)]
Pass the isAntiDep argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59968 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRun post-RA scheduling after branch folding, as it tends to
Dan Gohman [Mon, 24 Nov 2008 17:22:52 +0000 (17:22 +0000)]
Run post-RA scheduling after branch folding, as it tends to
obscure tail-merging opportunities.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59967 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a few HTML tidiness issues.
Dan Gohman [Mon, 24 Nov 2008 17:18:39 +0000 (17:18 +0000)]
Fix a few HTML tidiness issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59966 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU:
Scott Michel [Mon, 24 Nov 2008 17:11:17 +0000 (17:11 +0000)]
CellSPU:
(a) Improve the extract element code: there's no need to do gymnastics with
    rotates into the preferred slot if a shuffle will do the same thing.
(b) Rename a couple of SPUISD pseudo-instructions for readability and better
    semantic correspondence.
(c) Fix i64 sign/any/zero extension lowering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59965 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDelete some spurious characters.
Dan Gohman [Mon, 24 Nov 2008 16:45:15 +0000 (16:45 +0000)]
Delete some spurious characters.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59964 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix some "</p>"s.
Dan Gohman [Mon, 24 Nov 2008 16:35:31 +0000 (16:35 +0000)]
Fix some "</p>"s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59963 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome documentation for LegalizeTypes.
Dan Gohman [Mon, 24 Nov 2008 16:27:17 +0000 (16:27 +0000)]
Some documentation for LegalizeTypes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59962 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMinor fix debug for register allocation debug output.
Matthijs Kooijman [Mon, 24 Nov 2008 16:01:21 +0000 (16:01 +0000)]
Minor fix debug for register allocation debug output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59961 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf the type legalizer actually legalized anything
Duncan Sands [Mon, 24 Nov 2008 14:53:14 +0000 (14:53 +0000)]
If the type legalizer actually legalized anything
(this doesn't happen that often, since most code
does not use illegal types) then follow it by a
DAG combiner run that is allowed to generate
illegal operations but not illegal types.  I didn't
modify the target combiner code to distinguish like
this between illegal operations and illegal types,
so it will not produce illegal operations as well
as not producing illegal types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59960 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix comments.
Matthijs Kooijman [Mon, 24 Nov 2008 11:44:00 +0000 (11:44 +0000)]
Fix comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59958 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoNULL, unique pointers from malloc(0), and freed pointers are legal values for
Torok Edwin [Mon, 24 Nov 2008 08:02:24 +0000 (08:02 +0000)]
NULL, unique pointers from malloc(0), and freed pointers are legal values for
noalias attribute parameters/return values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59955 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove target independent td files from lib/Target/ to include/llvm/Target so they...
Evan Cheng [Mon, 24 Nov 2008 07:34:46 +0000 (07:34 +0000)]
Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59953 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEliminate some unused variable compile time warnings.
Evan Cheng [Mon, 24 Nov 2008 07:09:49 +0000 (07:09 +0000)]
Eliminate some unused variable compile time warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59952 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTest add-with-overflow with fast ISel.
Bill Wendling [Mon, 24 Nov 2008 05:23:38 +0000 (05:23 +0000)]
Test add-with-overflow with fast ISel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59945 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSeriously strengthen the guarantee offered by noalias on a function's return
Nick Lewycky [Mon, 24 Nov 2008 05:00:44 +0000 (05:00 +0000)]
Seriously strengthen the guarantee offered by noalias on a function's return
value. It must now be as if the pointer were allocated and has not escaped to
the caller. Thanks to Dan Gohman for pointing out the error in the original
and helping devise this definition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59940 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoExtend the 'noalias' attribute to function return values. This is intended to
Nick Lewycky [Mon, 24 Nov 2008 03:41:24 +0000 (03:41 +0000)]
Extend the 'noalias' attribute to function return values. This is intended to
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (for now).

No changes to the bitcode reader/writer, asm printer or verifier were needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59934 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdded missing description for -disable-mmx option.
Mon P Wang [Mon, 24 Nov 2008 02:10:43 +0000 (02:10 +0000)]
Added missing description for -disable-mmx option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59929 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for llvm.uadd.with.overflow.
Bill Wendling [Mon, 24 Nov 2008 01:38:29 +0000 (01:38 +0000)]
Add support for llvm.uadd.with.overflow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59926 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRoll back rev 59890, since Chris says this can never happen.
Scott Michel [Sun, 23 Nov 2008 19:22:48 +0000 (19:22 +0000)]
Roll back rev 59890, since Chris says this can never happen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59914 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRename SetCCResultContents to BooleanContents. In
Duncan Sands [Sun, 23 Nov 2008 15:47:28 +0000 (15:47 +0000)]
Rename SetCCResultContents to BooleanContents.  In
practice these booleans are mostly produced by SetCC,
however the concept is more general.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59911 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake JIT::runFunction handle functions with non-C calling conventions.
Chris Lattner [Sun, 23 Nov 2008 08:00:11 +0000 (08:00 +0000)]
Make JIT::runFunction handle functions with non-C calling conventions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59904 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdded -disable-mmx using a patch from Preston Gurd.
Mon P Wang [Sun, 23 Nov 2008 04:37:22 +0000 (04:37 +0000)]
Added -disable-mmx using a patch from Preston Gurd.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59901 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdded check to avoid generating extract subvector beyond the end of the vector when...
Mon P Wang [Sun, 23 Nov 2008 04:35:05 +0000 (04:35 +0000)]
Added check to avoid generating extract subvector beyond the end of the vector when normalizing vector shuffles.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59900 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFixed named anchor for llvm.stackprotector intrinsic.
Misha Brukman [Sat, 22 Nov 2008 23:55:29 +0000 (23:55 +0000)]
Fixed named anchor for llvm.stackprotector intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59893 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU: Fix bug 3056. Varadic extract_element was not implemented (nor was it
Scott Michel [Sat, 22 Nov 2008 23:50:42 +0000 (23:50 +0000)]
CellSPU: Fix bug 3056. Varadic extract_element was not implemented (nor was it
ever conceived to occur).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59891 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCheck for NULL before traversing the isa<> type hierarchy checking with a
Scott Michel [Sat, 22 Nov 2008 23:49:26 +0000 (23:49 +0000)]
Check for NULL before traversing the isa<> type hierarchy checking with a
NULL-based reference.

Note: Encountered this a few times on Tiger + gcc 4.0.1. Might just be a
platform-specific compiler issue, but it's good defensive programming in any
case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59890 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDescribe how the JIT maps fields to MachineOperands, patch by
Chris Lattner [Sat, 22 Nov 2008 19:10:48 +0000 (19:10 +0000)]
Describe how the JIT maps fields to MachineOperands, patch by
JP Bonn!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59876 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake a convenient helper for printing offsets.
Anton Korobeynikov [Sat, 22 Nov 2008 16:15:34 +0000 (16:15 +0000)]
Make a convenient helper for printing offsets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59872 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCleanup of the [SU]ADDO type legalization code. Patch by Duncan!
Bill Wendling [Sat, 22 Nov 2008 07:24:01 +0000 (07:24 +0000)]
Cleanup of the [SU]ADDO type legalization code. Patch by Duncan!

"It simplifies the type legalization part a bit, and produces better code by
teaching SelectionDAG about the extra bits in an i8 SADDO/UADDO node.  In
essence, I spontaneously decided that on x86 this i8 boolean result would be
either 0 or 1, and on other platforms 0/1 or 0/-1, depending on whether the
platform likes it's boolean zero extended or sign extended."

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59864 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago- Move conversion of [SU]ADDO from DAG combiner into legalizer.
Bill Wendling [Sat, 22 Nov 2008 00:22:52 +0000 (00:22 +0000)]
- Move conversion of [SU]ADDO from DAG combiner into legalizer.
- Add "promote integer type" stuff to the legalizer for these nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59847 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix build failure.
Devang Patel [Fri, 21 Nov 2008 21:00:20 +0000 (21:00 +0000)]
Fix build failure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59844 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSilence unused variable warnings.
Devang Patel [Fri, 21 Nov 2008 20:00:59 +0000 (20:00 +0000)]
Silence unused variable warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59841 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDocument TEST=dbgopt
Devang Patel [Fri, 21 Nov 2008 19:35:57 +0000 (19:35 +0000)]
Document TEST=dbgopt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59839 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCorrectly set the isCtrl flag for chain dependencies.
Dan Gohman [Fri, 21 Nov 2008 19:17:25 +0000 (19:17 +0000)]
Correctly set the isCtrl flag for chain dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59837 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate comments.
Dan Gohman [Fri, 21 Nov 2008 19:16:58 +0000 (19:16 +0000)]
Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59836 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate comments.
Dan Gohman [Fri, 21 Nov 2008 19:10:41 +0000 (19:10 +0000)]
Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59834 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoreapply Sanjiv's patch to genericize memcpy/memset/memmove to take an
Chris Lattner [Fri, 21 Nov 2008 16:42:48 +0000 (16:42 +0000)]
reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an
arbitrary integer width for the count.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59823 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRevert r59802. It was breaking the build of llvm-gcc:
Bill Wendling [Fri, 21 Nov 2008 09:09:41 +0000 (09:09 +0000)]
Revert r59802. It was breaking the build of llvm-gcc:

g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -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 -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -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 ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic'
make[3]: *** [llvm-convert.o] Error 1
make[3]: *** Waiting for unfinished jobs....
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59809 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake mem[cpy,move,set] intrinsics overloaded.
Sanjiv Gupta [Fri, 21 Nov 2008 07:49:09 +0000 (07:49 +0000)]
Make mem[cpy,move,set] intrinsics overloaded.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59802 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDefault to converting UADDO to the generic form that SADDO is converted to.
Bill Wendling [Fri, 21 Nov 2008 07:44:30 +0000 (07:44 +0000)]
Default to converting UADDO to the generic form that SADDO is converted to.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59801 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoOptimize (x/y)*y into x-(x%y) in general. Div and rem are about the same, and
Nick Lewycky [Fri, 21 Nov 2008 07:33:58 +0000 (07:33 +0000)]
Optimize (x/y)*y into x-(x%y) in general. Div and rem are about the same, and
a subtract is cheaper than a multiply. This generalizes an existing transform.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59800 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoLLVM does have a fortran FE!
Duraid Madina [Fri, 21 Nov 2008 06:26:56 +0000 (06:26 +0000)]
LLVM does have a fortran FE!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59795 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoClean up normalization of shuffles
Mon P Wang [Fri, 21 Nov 2008 04:25:21 +0000 (04:25 +0000)]
Clean up normalization of shuffles

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59792 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU:
Scott Michel [Fri, 21 Nov 2008 02:56:16 +0000 (02:56 +0000)]
CellSPU:
(a) Fix bgs 3052, 3057
(b) Incorporate Duncan's suggestions re: i1 promotion
(c) Indentation updates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59790 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCombine the two add with overflow intrinsics lowerings. They differ only in DAG node...
Bill Wendling [Fri, 21 Nov 2008 02:38:44 +0000 (02:38 +0000)]
Combine the two add with overflow intrinsics lowerings. They differ only in DAG node type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59788 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSet the isAntiDep flag in the MachineInstr scheduler.
Dan Gohman [Fri, 21 Nov 2008 02:38:21 +0000 (02:38 +0000)]
Set the isAntiDep flag in the MachineInstr scheduler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59787 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGenerate code for llvm.uadd.with.overflow intrinsic. No conversion support yet.
Bill Wendling [Fri, 21 Nov 2008 02:33:36 +0000 (02:33 +0000)]
Generate code for llvm.uadd.with.overflow intrinsic. No conversion support yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59786 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a flag to SDep for tracking which edges are anti-dependence edges.
Dan Gohman [Fri, 21 Nov 2008 02:27:52 +0000 (02:27 +0000)]
Add a flag to SDep for tracking which edges are anti-dependence edges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59785 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate comment to reflect a semblance of reality.
Bill Wendling [Fri, 21 Nov 2008 02:24:44 +0000 (02:24 +0000)]
Update comment to reflect a semblance of reality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59784 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove chains. Unnecessary.
Bill Wendling [Fri, 21 Nov 2008 02:22:59 +0000 (02:22 +0000)]
Remove chains. Unnecessary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59783 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRename SDep's isSpecial to isArtificial, to make this field a little
Dan Gohman [Fri, 21 Nov 2008 02:18:56 +0000 (02:18 +0000)]
Rename SDep's isSpecial to isArtificial, to make this field a little
less mysterious.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59782 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd generic test for add with overflow.
Bill Wendling [Fri, 21 Nov 2008 02:15:51 +0000 (02:15 +0000)]
Add generic test for add with overflow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59781 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC"
Bill Wendling [Fri, 21 Nov 2008 02:12:42 +0000 (02:12 +0000)]
Rename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC"
because the boolean it returns to indicate an overflow may not be treated like
as a flag. It could be stored to memory, for instance.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59780 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement the sadd_with_overflow intrinsic. This is converted into
Bill Wendling [Fri, 21 Nov 2008 02:03:52 +0000 (02:03 +0000)]
Implement the sadd_with_overflow intrinsic. This is converted into
"ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the
addition and then checks if the result is less than one of the operands. (If it
is, then there was an overflow.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59779 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix unused variable warnings.
Devang Patel [Fri, 21 Nov 2008 01:52:59 +0000 (01:52 +0000)]
Fix unused variable warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59778 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse ComputeLatency in the MachineInstr scheduler.
Dan Gohman [Fri, 21 Nov 2008 01:44:51 +0000 (01:44 +0000)]
Use ComputeLatency in the MachineInstr scheduler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59777 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove the CycleBound computation code from the ScheduleDAGRRList
Dan Gohman [Fri, 21 Nov 2008 01:30:54 +0000 (01:30 +0000)]
Remove the CycleBound computation code from the ScheduleDAGRRList
schedulers. This doesn't have much immediate impact because
targets that use these schedulers by default don't yet provide
pipeline information.

This code also didn't have the benefit of register pressure
information. Also, removing it will avoid problems with list-burr
suddenly starting to do latency-oriented scheduling on x86 when we
start providing pipeline data, which would increase spilling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59775 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate comment.
Bill Wendling [Fri, 21 Nov 2008 00:45:00 +0000 (00:45 +0000)]
Update comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59766 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Do not rebuild the world when tblgen changes but the .inc files
Oscar Fuentes [Fri, 21 Nov 2008 00:18:45 +0000 (00:18 +0000)]
CMake: Do not rebuild the world when tblgen changes but the .inc files
it produces are not affected by the change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59763 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement ComputeLatency for MachineInstr ScheduleDAGs. Factor
Dan Gohman [Fri, 21 Nov 2008 00:12:10 +0000 (00:12 +0000)]
Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor
some of the latency computation logic out of the SDNode
ScheduleDAG code into a TargetInstrItineraries helper method
to help with this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59761 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd UADDO and SADDO nodes. These will be used for determining an overflow
Bill Wendling [Fri, 21 Nov 2008 00:11:16 +0000 (00:11 +0000)]
Add UADDO and SADDO nodes. These will be used for determining an overflow
condition in an addition operation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59760 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange these schedulers to not emit no-ops. It turns out that
Dan Gohman [Fri, 21 Nov 2008 00:10:42 +0000 (00:10 +0000)]
Change these schedulers to not emit no-ops. It turns out that
the RR scheduler actually does look at latency values, but it
doesn't use a hazard recognizer so it has no way to know when
a no-op is needed, as opposed to just stalling and incrementing
the cycle count.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59759 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix error where it wasn't getting the correct caller function.
Bill Wendling [Fri, 21 Nov 2008 00:09:21 +0000 (00:09 +0000)]
Fix error where it wasn't getting the correct caller function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59758 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf the function being inlined has a higher stack protection level than the
Bill Wendling [Fri, 21 Nov 2008 00:06:32 +0000 (00:06 +0000)]
If the function being inlined has a higher stack protection level than the
inlining function, then increase the stack protection level on the inlining
function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59757 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIntroduce two new "add" intrinsics. These return the sum plus a bit indicating
Bill Wendling [Fri, 21 Nov 2008 00:05:31 +0000 (00:05 +0000)]
Introduce two new "add" intrinsics. These return the sum plus a bit indicating
that an overflow/carry occured. These are converted into ISD::[SU]ADDO nodes,
which are lowered in a target-independent way into something sane. Eventually,
each target can implement their own method of checking the overflow/carry flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59756 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: More documentation.
Oscar Fuentes [Thu, 20 Nov 2008 23:35:09 +0000 (23:35 +0000)]
CMake: More documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59755 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDelete redundant inline keywords.
Dan Gohman [Thu, 20 Nov 2008 22:10:21 +0000 (22:10 +0000)]
Delete redundant inline keywords.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59754 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDoxygenate comments.
Dan Gohman [Thu, 20 Nov 2008 22:09:52 +0000 (22:09 +0000)]
Doxygenate comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59753 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Some documentation. Work in progress.
Oscar Fuentes [Thu, 20 Nov 2008 22:05:48 +0000 (22:05 +0000)]
CMake: Some documentation. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59752 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTreat mid-block labels the same as terminators when building the
Dan Gohman [Thu, 20 Nov 2008 19:58:35 +0000 (19:58 +0000)]
Treat mid-block labels the same as terminators when building the
MachineInstr scheduling DAG, meaning they implicitly depend on all
preceding defs. This fixes Benchmarks/Shootout-C++/except and
Regression/C++/EH/simple_rethrow in
  -relocation-model=pic -disable-post-RA-scheduler=false
mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59747 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd another machine-code printing pass when post-pass scheduling is run.
Dan Gohman [Thu, 20 Nov 2008 19:54:21 +0000 (19:54 +0000)]
Add another machine-code printing pass when post-pass scheduling is run.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59746 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't forget arguments!
Devang Patel [Thu, 20 Nov 2008 19:50:17 +0000 (19:50 +0000)]
Don't forget arguments!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59745 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTest -pre-RA-sched=fast too, for completeness.
Dan Gohman [Thu, 20 Nov 2008 19:26:04 +0000 (19:26 +0000)]
Test -pre-RA-sched=fast too, for completeness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59741 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCMake: Option for building with -fPIC.
Oscar Fuentes [Thu, 20 Nov 2008 19:13:51 +0000 (19:13 +0000)]
CMake: Option for building with -fPIC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59739 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdating ignore lists.
Gordon Henriksen [Thu, 20 Nov 2008 16:56:53 +0000 (16:56 +0000)]
Updating ignore lists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59737 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU:
Scott Michel [Thu, 20 Nov 2008 16:36:33 +0000 (16:36 +0000)]
CellSPU:
(a) Remove moved file (SPUAsmPrinter.cpp) to make svn happy.
(b) Remove truncated stores that will never be used.
(c) Add initial support for __muldi3 as a libcall.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59734 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd some documentation.
Duncan Sands [Thu, 20 Nov 2008 10:34:43 +0000 (10:34 +0000)]
Add some documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59727 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAllow XMM2 and XMM3 to be used for non ABI compliant code.
Mon P Wang [Thu, 20 Nov 2008 07:48:19 +0000 (07:48 +0000)]
Allow XMM2 and XMM3 to be used for non ABI compliant code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59720 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago80-column violation.
Bill Wendling [Thu, 20 Nov 2008 07:24:30 +0000 (07:24 +0000)]
80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59718 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReformatting. No functionality change.
Bill Wendling [Thu, 20 Nov 2008 07:23:34 +0000 (07:23 +0000)]
Reformatting. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59717 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd an operator= to assign to smallstring.
Chris Lattner [Thu, 20 Nov 2008 07:09:17 +0000 (07:09 +0000)]
add an operator= to assign to smallstring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59715 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU: Custom lower truncating stores of i8 to i1 (should not have been
Scott Michel [Thu, 20 Nov 2008 05:01:09 +0000 (05:01 +0000)]
CellSPU: Custom lower truncating stores of i8 to i1 (should not have been
promote), fix signed conversion of indexed offsets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59707 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoundef beats zero. Fix this missed optimization opportunity. Patch by Matt Elder!
Nick Lewycky [Thu, 20 Nov 2008 04:36:13 +0000 (04:36 +0000)]
undef beats zero. Fix this missed optimization opportunity. Patch by Matt Elder!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59705 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRevert accidental last patch
Scott Michel [Thu, 20 Nov 2008 04:28:08 +0000 (04:28 +0000)]
Revert accidental last patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59704 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCellSPU: Adjust spacing/tabulation
Scott Michel [Thu, 20 Nov 2008 04:26:21 +0000 (04:26 +0000)]
CellSPU: Adjust spacing/tabulation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59703 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove a remnant of list-burr's fast mode.
Dan Gohman [Thu, 20 Nov 2008 03:32:45 +0000 (03:32 +0000)]
Remove a remnant of list-burr's fast mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59702 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFactor out the SethiUllman numbering logic from the list-burr and
Dan Gohman [Thu, 20 Nov 2008 03:30:37 +0000 (03:30 +0000)]
Factor out the SethiUllman numbering logic from the list-burr and
list-tdrr schedulers into a common base class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59701 91177308-0d34-0410-b5e6-96231b3b80d8