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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Dan Gohman [Thu, 20 Nov 2008 03:11:19 +0000 (03:11 +0000)]
Remove the "fast" form of the list-burr scheduler, and use the
dedicated "fast" scheduler in -fast mode instead, which is
faster. This speeds up llc -fast by a few percent on some
testcases -- the speedup only happens for code not handled by
fast-isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59700
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 20 Nov 2008 03:10:17 +0000 (03:10 +0000)]
CMake: when building shared libraries, use -fPIC for compiling
partially linked objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59699
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 20 Nov 2008 02:45:51 +0000 (02:45 +0000)]
Facter AddPseudoTwoAddrDeps and associated infrasructure out of
the list-burr scheduler so that it can be used by the list-tdrr
scheduler too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59698
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 20 Nov 2008 02:32:35 +0000 (02:32 +0000)]
- Register scavenger should use MachineRegisterInfo and internal map to find the first use of a register after a given machine instruction.
- When scavenging a register, in addition to the spill, insert a restore before the first use.
- Abort if client is looking to scavenge a register even when a previously scavenged register is still live.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59697
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 20 Nov 2008 02:25:51 +0000 (02:25 +0000)]
Fix a thinko. MO is getOperand(i-1) so we don't have to adjust e.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59696
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 20 Nov 2008 01:41:34 +0000 (01:41 +0000)]
Add #include <climits> to get the definition of INT_MAX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59692
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 20 Nov 2008 01:26:25 +0000 (01:26 +0000)]
Factor out the code for verifying the work of the scheduler,
extend it a bit, and make use of it in all schedulers, to
ensure consistent checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59689
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 20 Nov 2008 01:20:42 +0000 (01:20 +0000)]
Do not forget llvm.dbg.declare's first argument while removing debugging information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59688
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 20 Nov 2008 00:11:57 +0000 (00:11 +0000)]
Copy the tblgen utility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59681
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 19 Nov 2008 23:39:02 +0000 (23:39 +0000)]
Simplify this code a little. In the fast scheduler, CreateNewSUnit
and CreateClone don't add any extra value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59679
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 19 Nov 2008 23:21:33 +0000 (23:21 +0000)]
Eliminate a compile time warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59678
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 19 Nov 2008 23:21:11 +0000 (23:21 +0000)]
Eliminate a compile time warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59677
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 19 Nov 2008 23:18:57 +0000 (23:18 +0000)]
Experimental post-pass scheduling support. Post-pass scheduling
is currently off by default, and can be enabled with
-disable-post-RA-scheduler=false.
This doesn't have a significant impact on most code yet because it doesn't
yet do anything to address anti-dependencies and it doesn't attempt to
disambiguate memory references. Also, several popular targets
don't have pipeline descriptions yet.
The majority of the changes here are splitting the SelectionDAG-specific
code out of ScheduleDAG, so that ScheduleDAG can be moved to
libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
the rest of the scheduling code is somewhat rough and will evolve.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59676
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 19 Nov 2008 22:09:45 +0000 (22:09 +0000)]
Move the code for printing a graph node label for an SUnit into
a virtual method of SelectionDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59667
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 19 Nov 2008 21:32:03 +0000 (21:32 +0000)]
Convert SUnit's dump method into a print method and implement
dump in terms of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59665
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Wed, 19 Nov 2008 19:32:19 +0000 (19:32 +0000)]
CMake: Removed source file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59662
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 19 Nov 2008 19:01:37 +0000 (19:01 +0000)]
Do not use separate utility to walk all instructions and remove dead dbg intrinsics. Let instcombiner do this job.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59659
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 19 Nov 2008 18:59:41 +0000 (18:59 +0000)]
Let instcombiner remove redundant dbg intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59658
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 19 Nov 2008 18:56:50 +0000 (18:56 +0000)]
If there are two consecutive llvm.dbg.stoppoint calls then
it is likely that the optimizer deleted code in between these
two intrinsics. Keep only the last llvm.dbg.stoppoint in this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59657
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Wed, 19 Nov 2008 18:42:25 +0000 (18:42 +0000)]
CMake: Removed source file from lib/Target/PIC16/CMakeLists.txt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59655
91177308-0d34-0410-b5e6-
96231b3b80d8