oota-llvm.git
15 years agoSmall cleanups. No functionality change intended!
Duncan Sands [Mon, 10 Nov 2008 17:29:56 +0000 (17:29 +0000)]
Small cleanups.  No functionality change intended!

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

15 years agoWhen promoting the result of fp_to_uint/fp_to_sint,
Duncan Sands [Mon, 10 Nov 2008 17:28:30 +0000 (17:28 +0000)]
When promoting the result of fp_to_uint/fp_to_sint,
inform the optimizers that the result must be zero/
sign extended from the smaller type.  For example,
if a fp to unsigned i16 is promoted to fp to i32,
then we are allowed to assume that the extra 16 bits
are zero (because the result of fp to i16 is undefined
if the result does not fit in an i16).  This is
quite aggressive, but should help the optimizers
produce better code.  This requires correcting a
test which thought that fp_to_uint is some kind
of truncation, which it is not: in the testcase
(which does fp to i1), either the fp value converts
to 0 or 1 or the result is undefined, which is
quite different to truncation.

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

15 years agoWork around PR1000.
Duncan Sands [Mon, 10 Nov 2008 10:05:09 +0000 (10:05 +0000)]
Work around PR1000.

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

15 years agoProper way of doing llvm canadian-cross compilation.
Anton Korobeynikov [Mon, 10 Nov 2008 07:33:13 +0000 (07:33 +0000)]
Proper way of doing llvm canadian-cross compilation.
Patch by Jim Grosbach!

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

15 years agoReenable test.
Dale Johannesen [Mon, 10 Nov 2008 07:30:32 +0000 (07:30 +0000)]
Reenable test.

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

15 years agoReally fix testb optimization on big-endian.
Dale Johannesen [Mon, 10 Nov 2008 07:16:42 +0000 (07:16 +0000)]
Really fix testb optimization on big-endian.
Fixes ppc32 bootstrap.

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

15 years agoThird time's a charm.
Bill Wendling [Mon, 10 Nov 2008 06:59:06 +0000 (06:59 +0000)]
Third time's a charm.

The previous patches didn't match correctly. Also, we need to make sure that
the conditional is the same before doing the transformation.

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

15 years agofinal edits
Chris Lattner [Mon, 10 Nov 2008 05:40:34 +0000 (05:40 +0000)]
final edits

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

15 years agoAdded support for the following definition of shufflevector
Mon P Wang [Mon, 10 Nov 2008 04:46:22 +0000 (04:46 +0000)]
Added support for the following definition of shufflevector
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask>

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

15 years agoeliminate a couple more uses of utohexstr.
Chris Lattner [Mon, 10 Nov 2008 04:35:24 +0000 (04:35 +0000)]
eliminate a couple more uses of utohexstr.

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

15 years agoUse utohex_buffer instead of utohexstr to avoid creating a temporary
Chris Lattner [Mon, 10 Nov 2008 04:30:26 +0000 (04:30 +0000)]
Use utohex_buffer instead of utohexstr to avoid creating a temporary
string in the .ll and .s printers.

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

15 years agosplit out the functionality of utohexstr into a new utohex_buffer
Chris Lattner [Mon, 10 Nov 2008 04:22:46 +0000 (04:22 +0000)]
split out the functionality of utohexstr into a new utohex_buffer
helper.  This allows us to convert numbers to hex without necessarily
needing to make a std::string to hold the result.

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

15 years agoMove getCastToEmpty out of DIDescriptor into DIFactory. It is an
Chris Lattner [Mon, 10 Nov 2008 04:10:34 +0000 (04:10 +0000)]
Move getCastToEmpty out of DIDescriptor into DIFactory.  It is an
implementation detail of DIFactory anyway, and this allows it to avoid
recomputing the same type over and over.

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

15 years agoFix an over aggressive assumption that struct decls will have a pointer to
Chris Lattner [Mon, 10 Nov 2008 03:48:55 +0000 (03:48 +0000)]
Fix an over aggressive assumption that struct decls will have a pointer to
an array that is empty.  Instead of requiring this array, allow a null pointer.
This shrinks all forward references of structs.

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

15 years agoFix a bug with default arguments that apple gcc doesn't notice that llvmbb does.
Chris Lattner [Mon, 10 Nov 2008 03:11:39 +0000 (03:11 +0000)]
Fix a bug with default arguments that apple gcc doesn't notice that llvmbb does.

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

15 years agomove some cases around to silence these sorts of warnings in
Chris Lattner [Mon, 10 Nov 2008 03:05:41 +0000 (03:05 +0000)]
move some cases around to silence these sorts of warnings in
release-asserts build:

llvm/CodeGen/SelectionDAGNodes.h:1298: warning: control may reach end of non-void function 'unsigned int llvm::MVT::getSizeInBits() const' being inlined

what an unhelpful warning.

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

15 years agoadd new file
Chris Lattner [Mon, 10 Nov 2008 02:58:28 +0000 (02:58 +0000)]
add new file

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

15 years agoAdd a new set of helper classes for creating and reading debug
Chris Lattner [Mon, 10 Nov 2008 02:56:27 +0000 (02:56 +0000)]
Add a new set of helper classes for creating and reading debug
information.  This logically replaces the "Desc" classes in
MachineModuleInfo.  Nice features of these classes are that they:

1. Are much more efficient than MMI because they don't create a
   temporary parallel data structure for debug info that has to be
   'serialized' and 'deserialized' into/out of the module.
2. These provide a much cleaner abstraction for debug info than
   MMI, which will make it easier to change the implementation in
   the future (to be MDNode-based).
3. These are much easier to use than the MMI interfaces, requiring
   a lot less code in the front-ends.
4. These can be used to both create (for frontends) and read (for
   codegen) debug information.  DebugInfoBuilder can only be used
   to create the nodes.

So far, this is implemented just enough to support the debug info
generation needs of clang.  This can and should be extended to
support the full set of debug info constructs, and we should switch
llvm-gcc and llc over to using this in the near future.

This code also has a ton of FIXMEs in it, because the way we
currently represent debug info in LLVM IR is basically insane in a
variety of details.  This sort of issue should be fixed when we
eventually reimplement debug info on top of MDNodes.

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

15 years agoCMake: Builds a native tblgen when cross-compiling and the user didn't
Oscar Fuentes [Mon, 10 Nov 2008 02:35:55 +0000 (02:35 +0000)]
CMake: Builds a native tblgen when cross-compiling and the user didn't
set LLVM_TABLEGEN.

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

15 years agoForgot these.
Evan Cheng [Mon, 10 Nov 2008 01:52:24 +0000 (01:52 +0000)]
Forgot these.

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

15 years agoCMake: Implement magic word `all' for selecting all targets. Check
Oscar Fuentes [Mon, 10 Nov 2008 01:47:07 +0000 (01:47 +0000)]
CMake: Implement magic word `all' for selecting all targets. Check
that specified targets are known.

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

15 years agoCMake: Non-working code for auto-building the native tblgen util when
Oscar Fuentes [Mon, 10 Nov 2008 01:32:14 +0000 (01:32 +0000)]
CMake: Non-working code for auto-building the native tblgen util when
cross-compiling.

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

15 years agoRename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.
Evan Cheng [Mon, 10 Nov 2008 01:08:07 +0000 (01:08 +0000)]
Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.

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

15 years agoCorrection for the last patch. Should match the conditional in the first part
Bill Wendling [Sun, 9 Nov 2008 23:37:53 +0000 (23:37 +0000)]
Correction for the last patch. Should match the conditional in the first part
of the select match, not the select instruction itself.

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

15 years agoThe method of doing the matching with a 'select' instruction was wrong. The
Bill Wendling [Sun, 9 Nov 2008 23:17:42 +0000 (23:17 +0000)]
The method of doing the matching with a 'select' instruction was wrong. The
original code was matching like this:

if (match(A, m_Not(m_Value(B))))

B was already matched as a 'select' instruction. However, this isn't matching
what we think it's matching. It would match B as a 'Value', so basically
anything would match to it. In this case, a Constant matched. B was replaced
with a constant representation. And then the wrong value would be used in the
SelectInst::Create statement, causing a crash.

After thinking on this for a moment, and after Nick L. told me how the pattern
matching stuff was supposed to work, the solution was to match NOT an m_Value,
but an m_Select.

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

15 years agosuppress build products
Gabor Greif [Sun, 9 Nov 2008 21:33:37 +0000 (21:33 +0000)]
suppress build products

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

15 years agoCMake: Corrected detection of `nm'.
Oscar Fuentes [Sun, 9 Nov 2008 20:26:31 +0000 (20:26 +0000)]
CMake: Corrected detection of `nm'.

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

15 years agoCMake: Support for cross-compiling. For now, requires a previously
Oscar Fuentes [Sun, 9 Nov 2008 18:53:19 +0000 (18:53 +0000)]
CMake: Support for cross-compiling. For now, requires a previously
built native tblgen which is passed to cmake in the variable
LLVM_TABLEGEN.

See

http://www.cmake.org/Wiki/CmakeMingw

for a quick example on how to cross-compile with CMake.

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

15 years agofix validation problem.
Chris Lattner [Sun, 9 Nov 2008 17:19:14 +0000 (17:19 +0000)]
fix validation problem.

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

15 years agoXFAIL this while waiting for a fix.
Duncan Sands [Sun, 9 Nov 2008 13:07:47 +0000 (13:07 +0000)]
XFAIL this while waiting for a fix.

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

15 years agofix leakage of ValueNumbering
Nuno Lopes [Sun, 9 Nov 2008 12:45:23 +0000 (12:45 +0000)]
fix leakage of ValueNumbering

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

15 years agoTemporarily revert 58825, which breaks PPC bootstrap.
Dale Johannesen [Sun, 9 Nov 2008 06:48:10 +0000 (06:48 +0000)]
Temporarily revert 58825, which breaks PPC bootstrap.
xs

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

15 years agoIf the LHS of the FCMP is coming from a UIToFP instruction, then we don't want
Bill Wendling [Sun, 9 Nov 2008 04:26:50 +0000 (04:26 +0000)]
If the LHS of the FCMP is coming from a UIToFP instruction, then we don't want
to generate signed ICMP instructions to replace the FCMP. This would violate
the following:

define i1 @test1(i32 %val) {
  %1 = uitofp i32 %val to double
  %2 = fcmp ole double %1, 0.000000e+00
  ret i1 %2
}

would be transformed into:

define i1 @test1(i32 %val) {
  %1 = icmp slt i33 %val, 1
  ret i1 %1
}

which is obviously wrong. This patch modifes InstCombiner::FoldFCmp_IntToFP_Cst
to handle when the LHS comes from UIToFP.

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

15 years agoTypo fix
Anton Korobeynikov [Sun, 9 Nov 2008 02:54:13 +0000 (02:54 +0000)]
Typo fix

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

15 years agoCellSPU: Update expected counts on expected patterns
Scott Michel [Sun, 9 Nov 2008 01:03:41 +0000 (01:03 +0000)]
CellSPU: Update expected counts on expected patterns

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

15 years agoTemporary revert my last commit: it seems it's triggering some subtle bug in backend
Anton Korobeynikov [Sat, 8 Nov 2008 23:05:05 +0000 (23:05 +0000)]
Temporary revert my last commit: it seems it's triggering some subtle bug in backend
and breaks llvm-gcc

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

15 years agoCMake: corrected library target name for dependency: LLVMCellSPU ->
Oscar Fuentes [Sat, 8 Nov 2008 21:23:15 +0000 (21:23 +0000)]
CMake: corrected library target name for dependency: LLVMCellSPU ->
LLVMCellSPUCodeGen.

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

15 years agoCMake: Reflected changes on the CellSPU target build. May require a
Oscar Fuentes [Sat, 8 Nov 2008 20:37:19 +0000 (20:37 +0000)]
CMake: Reflected changes on the CellSPU target build. May require a
clean start.

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

15 years agoFixed a pasto.
Oscar Fuentes [Sat, 8 Nov 2008 20:34:18 +0000 (20:34 +0000)]
Fixed a pasto.

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

15 years agoAllow $CALL and $ENV in command names. Fixes #3025.
Mikhail Glushenkov [Sat, 8 Nov 2008 19:43:32 +0000 (19:43 +0000)]
Allow $CALL and $ENV in command names. Fixes #3025.

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

15 years agoCellSPU: Bring SPU's assembly printer more in-line with current LLVM code
Scott Michel [Sat, 8 Nov 2008 18:59:02 +0000 (18:59 +0000)]
CellSPU: Bring SPU's assembly printer more in-line with current LLVM code
structure. Assembly printer now outputs the correct section for strings.

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

15 years agoTry to produce better code when scalarizing VSETCC.
Duncan Sands [Sat, 8 Nov 2008 18:26:48 +0000 (18:26 +0000)]
Try to produce better code when scalarizing VSETCC.

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

15 years agoFactor out offset printing code into generic AsmPrinter.
Anton Korobeynikov [Sat, 8 Nov 2008 17:21:38 +0000 (17:21 +0000)]
Factor out offset printing code into generic AsmPrinter.
FIXME: it seems, that most of targets don't support
offsets wrt CPI/GlobalAddress', was it intentional?

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

15 years agoThe Index field of an AttributeWithIndex is of type unsigned, not uint16_t.
Nicolas Geoffray [Sat, 8 Nov 2008 15:36:01 +0000 (15:36 +0000)]
The Index field of an AttributeWithIndex is of type unsigned, not uint16_t.

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

15 years agoStoreInst does not produce any result thus it's useless to create new
Anton Korobeynikov [Sat, 8 Nov 2008 12:58:07 +0000 (12:58 +0000)]
StoreInst does not produce any result thus it's useless to create new
variable for it. This greatly reduces amount of unused variables in
llvm2cpp-generated code

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

15 years agoProperly escape dashes in TableGen's LLVMC2 emitter.
Anton Korobeynikov [Sat, 8 Nov 2008 10:16:21 +0000 (10:16 +0000)]
Properly escape dashes in TableGen's LLVMC2 emitter.
Patch by Patrick Walton!

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

15 years agoFix syntax of iterate_complex example. Noticed by Martin!
Eric Christopher [Sat, 8 Nov 2008 08:20:49 +0000 (08:20 +0000)]
Fix syntax of iterate_complex example. Noticed by Martin!

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

15 years agoMoved InvalidateInstructionCache to ARMJITInfo::emitFunctionStub which knows size...
Evan Cheng [Sat, 8 Nov 2008 08:16:49 +0000 (08:16 +0000)]
Moved InvalidateInstructionCache to ARMJITInfo::emitFunctionStub which knows size of stub.

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

15 years agoRemove a InvalidateInstructionCache call with incorrect size.
Evan Cheng [Sat, 8 Nov 2008 08:15:39 +0000 (08:15 +0000)]
Remove a InvalidateInstructionCache call with incorrect size.

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

15 years agoRename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr.
Evan Cheng [Sat, 8 Nov 2008 08:02:53 +0000 (08:02 +0000)]
Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr.

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

15 years agoTell ARMJITInfo if codegen relocation is PIC. It changes how function stubs are gener...
Evan Cheng [Sat, 8 Nov 2008 07:38:22 +0000 (07:38 +0000)]
Tell ARMJITInfo if codegen relocation is PIC. It changes how function stubs are generated.

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

15 years agoRename isString -> isExternalSymbol; getString -> getExternalSymbol since these work...
Evan Cheng [Sat, 8 Nov 2008 07:37:34 +0000 (07:37 +0000)]
Rename isString -> isExternalSymbol; getString -> getExternalSymbol since these work on externsym machine relocations.

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

15 years agoMore debug output.
Evan Cheng [Sat, 8 Nov 2008 07:22:53 +0000 (07:22 +0000)]
More debug output.

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

15 years agoFix relocation for calls to external symbols.
Evan Cheng [Sat, 8 Nov 2008 07:22:33 +0000 (07:22 +0000)]
Fix relocation for calls to external symbols.

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

15 years agoCellSPU: Fix prologue/epilogue emission when function contains calls but
Scott Michel [Sat, 8 Nov 2008 05:16:20 +0000 (05:16 +0000)]
CellSPU: Fix prologue/epilogue emission when function contains calls but
theframe size is 0; the prologue and epilogue should be emitted in this case.

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

15 years agoRework r58829, allowing removal of dbg info intrinsics during alloca
Daniel Dunbar [Sat, 8 Nov 2008 04:12:17 +0000 (04:12 +0000)]
Rework r58829, allowing removal of dbg info intrinsics during alloca
promotion.
 - Eliminate uses after free and simplify tests.

Devang: Please check that this is still doing what you intended.

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

15 years agoAdd LLVMC2 tool definitions for Objective-C and Objective-C++.
Daniel Dunbar [Sat, 8 Nov 2008 03:25:47 +0000 (03:25 +0000)]
Add LLVMC2 tool definitions for Objective-C and Objective-C++.

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

15 years agoAdd svn:ignore properties for Clang llvmc2 plugin.
Daniel Dunbar [Sat, 8 Nov 2008 03:10:19 +0000 (03:10 +0000)]
Add svn:ignore properties for Clang llvmc2 plugin.

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

15 years agoSkip over two-address use operands.
Evan Cheng [Sat, 8 Nov 2008 01:44:13 +0000 (01:44 +0000)]
Skip over two-address use operands.

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

15 years agoHandle ARM machine constantpool entry with non-lazy ptr.
Evan Cheng [Sat, 8 Nov 2008 01:31:27 +0000 (01:31 +0000)]
Handle ARM machine constantpool entry with non-lazy ptr.

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

15 years agoIndentation.
Evan Cheng [Sat, 8 Nov 2008 01:30:20 +0000 (01:30 +0000)]
Indentation.

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

15 years agoremove unavailable clang project
Ted Kremenek [Sat, 8 Nov 2008 01:02:44 +0000 (01:02 +0000)]
remove unavailable clang project

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

15 years agoUse ARMFunctionInfo to track number of constpool entries and jumptables.
Evan Cheng [Sat, 8 Nov 2008 00:51:41 +0000 (00:51 +0000)]
Use ARMFunctionInfo to track number of constpool entries and jumptables.

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

15 years agoGenerated code for generic expansion of SETUGT etc.
Dale Johannesen [Sat, 8 Nov 2008 00:49:19 +0000 (00:49 +0000)]
Generated code for generic expansion of SETUGT etc.
is noticeably worse than previous PPC-specific code.
Since the latter was also wrong in some cases and
correctness is more important than efficiency, I'm
disabling this test temporarily while I fix it.

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

15 years agoXfail an incorrect test.
Dale Johannesen [Sat, 8 Nov 2008 00:40:24 +0000 (00:40 +0000)]
Xfail an incorrect test.

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

15 years agoMake testb optimization work on big-endian targets.
Dale Johannesen [Sat, 8 Nov 2008 00:01:16 +0000 (00:01 +0000)]
Make testb optimization work on big-endian targets.

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

15 years agoMore code clean up.
Evan Cheng [Fri, 7 Nov 2008 22:57:53 +0000 (22:57 +0000)]
More code clean up.

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

15 years agoMake FP tests requiring two compares work on PPC (PR 642).
Dale Johannesen [Fri, 7 Nov 2008 22:54:33 +0000 (22:54 +0000)]
Make FP tests requiring two compares work on PPC (PR 642).
This is Chris' patch from the PR, modified to realize that
SETUGT/SETULT occur legitimately with integers, plus
two fixes in LegalizeDAG to pass a valid result type into
LegalizeSetCC.  The argument of TLI.getSetCCResultType is
ignored on PPC, but I think I'm following usage elsewhere.

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

15 years agoGet PIC jump table working.
Evan Cheng [Fri, 7 Nov 2008 22:30:53 +0000 (22:30 +0000)]
Get PIC jump table working.

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

15 years agoMore debug output.
Evan Cheng [Fri, 7 Nov 2008 22:30:29 +0000 (22:30 +0000)]
More debug output.

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

15 years agoMake tablegen print out a nice error message for a const char*
Dan Gohman [Fri, 7 Nov 2008 21:01:13 +0000 (21:01 +0000)]
Make tablegen print out a nice error message for a const char*
exception, like it does for a std::string exception.

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

15 years agoDocument the acronym RAUW. Patch by Jonathan Brandmeyer!
Dan Gohman [Fri, 7 Nov 2008 20:29:17 +0000 (20:29 +0000)]
Document the acronym RAUW. Patch by Jonathan Brandmeyer!

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

15 years agoSign-extend rather than zero-extend when promoting
Duncan Sands [Fri, 7 Nov 2008 20:13:04 +0000 (20:13 +0000)]
Sign-extend rather than zero-extend when promoting
the condition for a BRCOND, according to what is
returned by getSetCCResultContents.  Since all
targets return the same thing (ZeroOrOneSetCCResult),
this should be harmless!  The point is that all over
the place the result of SETCC is fed directly into
BRCOND.  On machines for which getSetCCResultContents
returns ZeroOrNegativeOneSetCCResult, this is a
sign-extended boolean.  So it seems dangerous to
also feed BRCOND zero-extended booleans in some
circumstances - for example, when promoting the
condition.

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

15 years agoFlush the raw_ostream after emitting the assembly for a function.
Dan Gohman [Fri, 7 Nov 2008 19:49:17 +0000 (19:49 +0000)]
Flush the raw_ostream after emitting the assembly for a function.
This is a temporary fix for the -print-emitted-asm option, where
errs() is used as the stream, in the case where other code is
using stderr without using errs()' buffer. Hopefully soon we'll
fix errs() to be non-buffered instead. Patch by Preston Gurd.

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

15 years agoFix unsigned->ppcf128 conversion.
Dale Johannesen [Fri, 7 Nov 2008 19:11:43 +0000 (19:11 +0000)]
Fix unsigned->ppcf128 conversion.

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

15 years agoUpdate to add newer bitcodes.
Nick Lewycky [Fri, 7 Nov 2008 14:52:51 +0000 (14:52 +0000)]
Update to add newer bitcodes.

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

15 years agoKeep CREDITS.TXT sorted by name.
Richard Osborne [Fri, 7 Nov 2008 12:44:36 +0000 (12:44 +0000)]
Keep CREDITS.TXT sorted by name.

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

15 years agoAdd contributer information for XCore backend to CREDITS.TXT
Richard Osborne [Fri, 7 Nov 2008 12:41:14 +0000 (12:41 +0000)]
Add contributer information for XCore backend to CREDITS.TXT

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

15 years agoAdd XCore backend to CMake build.
Richard Osborne [Fri, 7 Nov 2008 12:37:45 +0000 (12:37 +0000)]
Add XCore backend to CMake build.

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

15 years agoAdd basic test for XCore backend
Richard Osborne [Fri, 7 Nov 2008 11:24:12 +0000 (11:24 +0000)]
Add basic test for XCore backend

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

15 years agoFix compile warnings.
Richard Osborne [Fri, 7 Nov 2008 11:21:09 +0000 (11:21 +0000)]
Fix compile warnings.

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

15 years agoCellSPU: Ensure that C strings are always put in the .rodata section
Scott Michel [Fri, 7 Nov 2008 11:06:44 +0000 (11:06 +0000)]
CellSPU: Ensure that C strings are always put in the .rodata section

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

15 years agoAdd XCore backend.
Richard Osborne [Fri, 7 Nov 2008 10:59:00 +0000 (10:59 +0000)]
Add XCore backend.

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

15 years agoJump table JIT support. Work in progress.
Evan Cheng [Fri, 7 Nov 2008 09:06:08 +0000 (09:06 +0000)]
Jump table JIT support. Work in progress.

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

15 years agoJump tables may be emitted by target.
Evan Cheng [Fri, 7 Nov 2008 09:02:17 +0000 (09:02 +0000)]
Jump tables may be emitted by target.

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

15 years agoJump table relocation addresses may be resolved by target.
Evan Cheng [Fri, 7 Nov 2008 09:01:15 +0000 (09:01 +0000)]
Jump table relocation addresses may be resolved by target.

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

15 years agoTeach CellSPU about ELF sections and new section emitter classes.
Scott Michel [Fri, 7 Nov 2008 04:36:25 +0000 (04:36 +0000)]
Teach CellSPU about ELF sections and new section emitter classes.

NB: This is likely to need more work.

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

15 years agoBCUI + 1 doesn't work. Use next instead.
Bill Wendling [Fri, 7 Nov 2008 01:59:41 +0000 (01:59 +0000)]
BCUI + 1 doesn't work. Use next instead.

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

15 years agoRefactor code that adjusts the offsets of stack objects.
Bill Wendling [Fri, 7 Nov 2008 01:48:58 +0000 (01:48 +0000)]
Refactor code that adjusts the offsets of stack objects.

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

15 years agoEncode misc arithmetic instructions.
Evan Cheng [Fri, 7 Nov 2008 01:41:35 +0000 (01:41 +0000)]
Encode misc arithmetic instructions.

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

15 years agoTestcase for testb optimization.
Dale Johannesen [Fri, 7 Nov 2008 01:30:18 +0000 (01:30 +0000)]
Testcase for testb optimization.

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

15 years agoHandle (delete) dbg intrinsics while promoting alloca.
Devang Patel [Fri, 7 Nov 2008 01:30:07 +0000 (01:30 +0000)]
Handle (delete) dbg intrinsics while promoting alloca.

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

15 years agoWhen we're doing a compare of load-AND-constant to 0
Dale Johannesen [Fri, 7 Nov 2008 01:28:02 +0000 (01:28 +0000)]
When we're doing a compare of load-AND-constant to 0
(e.g. a bitfield test) narrow the load as much as possible.
The has the potential to avoid unnecessary partial-word
load-after-store conflicts, which cause stalls on several targets.
Also a size win on x86 (testb vs testl).

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

15 years ago- Modify the stack protector algorithm so that the stack slot is allocated in
Bill Wendling [Fri, 7 Nov 2008 01:23:58 +0000 (01:23 +0000)]
- Modify the stack protector algorithm so that the stack slot is allocated in
  LLVM IR code and not in the selection DAG ISel. This is a cleaner solution.

- Fix the heuristic for determining if protectors are necessary. The previous
  one wasn't checking the proper type size.

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

15 years agoRemove unneeded header file.
Bill Wendling [Thu, 6 Nov 2008 23:56:59 +0000 (23:56 +0000)]
Remove unneeded header file.

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

15 years agoDon't build a vector of returns. Just modify the Function in the loop.
Bill Wendling [Thu, 6 Nov 2008 23:55:49 +0000 (23:55 +0000)]
Don't build a vector of returns. Just modify the Function in the loop.

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

15 years agoFixed scalarizing an extract subvector and prevent an infinite loop
Mon P Wang [Thu, 6 Nov 2008 22:52:21 +0000 (22:52 +0000)]
Fixed scalarizing an extract subvector and prevent an infinite loop
when simplify a vector.

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

15 years agoThe size limit is for individual arrays. So if any array has more than 8 bytes
Bill Wendling [Thu, 6 Nov 2008 22:18:44 +0000 (22:18 +0000)]
The size limit is for individual arrays. So if any array has more than 8 bytes
in it, then emit stack protectors.

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

15 years agoEncode extend instructions; more clean up.
Evan Cheng [Thu, 6 Nov 2008 22:15:19 +0000 (22:15 +0000)]
Encode extend instructions; more clean up.

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

15 years agoFix a use of an invalid iterator when -debug-pass=Details is used.
Dan Gohman [Thu, 6 Nov 2008 21:57:17 +0000 (21:57 +0000)]
Fix a use of an invalid iterator when -debug-pass=Details is used.

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