oota-llvm.git
15 years agoAdd some explanations of how apint loads and stores
Duncan Sands [Sun, 22 Mar 2009 11:33:16 +0000 (11:33 +0000)]
Add some explanations of how apint loads and stores
work.

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

15 years agoReally should pass -dylib to the linker...
Bill Wendling [Sun, 22 Mar 2009 08:56:15 +0000 (08:56 +0000)]
Really should pass -dylib to the linker...

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

15 years agoA dylib should be built as a dylib and not a bundle.
Bill Wendling [Sun, 22 Mar 2009 08:28:45 +0000 (08:28 +0000)]
A dylib should be built as a dylib and not a bundle.

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

15 years agoadd method to access a template argument.
Chris Lattner [Sun, 22 Mar 2009 00:18:18 +0000 (00:18 +0000)]
add method to access a template argument.

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

15 years agoFactorize out a concept - no functionality change.
Duncan Sands [Sat, 21 Mar 2009 21:27:31 +0000 (21:27 +0000)]
Factorize out a concept - no functionality change.

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

15 years agoRe-commit r67334 and r67349 with fix.
Evan Cheng [Sat, 21 Mar 2009 18:12:24 +0000 (18:12 +0000)]
Re-commit r67334 and r67349 with fix.

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

15 years agoadd a fastpath to ConstantExpr::getBitCast to handle the case when an obviously
Chris Lattner [Sat, 21 Mar 2009 06:55:54 +0000 (06:55 +0000)]
add a fastpath to ConstantExpr::getBitCast to handle the case when an obviously
unneeded bitcast is requested.  This is common for frontends who just unconditionally
cast even if the target is often the right type already.  THis prevents going into
getFoldedCast which switches on the opcode and does a bunch of other stuff before
doing the same opzn.

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

15 years agoadd some inline methods for infix operators on sparse vectors,
Chris Lattner [Sat, 21 Mar 2009 05:40:09 +0000 (05:40 +0000)]
add some inline methods for infix operators on sparse vectors,
tidy some df iteration stuff, patch by John Mosby!

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

15 years agoRemoved AFGR32 register class
Bruno Cardoso Lopes [Sat, 21 Mar 2009 00:05:07 +0000 (00:05 +0000)]
Removed AFGR32 register class
Handle odd registers allocation in FGR32.

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

15 years agoFix a few more indentation problems and an 80-column violation.
Bob Wilson [Fri, 20 Mar 2009 23:16:43 +0000 (23:16 +0000)]
Fix a few more indentation problems and an 80-column violation.

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

15 years agoNo functional changes. Fix indentation and whitespace only.
Bob Wilson [Fri, 20 Mar 2009 22:42:55 +0000 (22:42 +0000)]
No functional changes.  Fix indentation and whitespace only.

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

15 years agoFix instcombine to not introduce undefined shifts when merging two
Chris Lattner [Fri, 20 Mar 2009 22:41:15 +0000 (22:41 +0000)]
Fix instcombine to not introduce undefined shifts when merging two
shifts together.  This fixes PR3851.

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

15 years agoDon't load values out of global constants with weak
Duncan Sands [Fri, 20 Mar 2009 21:53:29 +0000 (21:53 +0000)]
Don't load values out of global constants with weak
linkage: the value may be replaced with something
different at link time.  (Frontends that want to
allow values to be loaded out of weak constants can
give their constants weak_odr linkage).

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

15 years agoSimplify this code; use a while instead of an if and a do-while.
Dan Gohman [Fri, 20 Mar 2009 20:42:23 +0000 (20:42 +0000)]
Simplify this code; use a while instead of an if and a do-while.

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

15 years agoFor inline asm output operand that matches an input. Encode the input operand index...
Evan Cheng [Fri, 20 Mar 2009 18:03:34 +0000 (18:03 +0000)]
For inline asm output operand that matches an input. Encode the input operand index in the high bits.

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

15 years agoFixed comment for libcalls.
Sanjiv Gupta [Fri, 20 Mar 2009 14:10:20 +0000 (14:10 +0000)]
Fixed comment for libcalls.

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

15 years agoFixed build warnings for unused variables.
Sanjiv Gupta [Fri, 20 Mar 2009 13:49:20 +0000 (13:49 +0000)]
Fixed build warnings for unused variables.

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

15 years agoReformatting. Inserted code comments. Cleaned interfaces.
Sanjiv Gupta [Fri, 20 Mar 2009 13:42:20 +0000 (13:42 +0000)]
Reformatting. Inserted code comments. Cleaned interfaces.
Removed unncessary code. No functionality change.

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

15 years agoFixed the comment. No functionality change.
Sanjiv Gupta [Fri, 20 Mar 2009 09:38:50 +0000 (09:38 +0000)]
Fixed the comment. No functionality change.

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

15 years agoRevert r67334 and r37349 which break "make check" on Linux.
Nick Lewycky [Fri, 20 Mar 2009 07:56:31 +0000 (07:56 +0000)]
Revert r67334 and r37349 which break "make check" on Linux.

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

15 years agoApply the patch requested in PR3846.
Chris Lattner [Fri, 20 Mar 2009 05:08:24 +0000 (05:08 +0000)]
Apply the patch requested in PR3846.

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

15 years agoAdded option to enable generating less precise mad (multiply addition)
Mon P Wang [Fri, 20 Mar 2009 05:06:58 +0000 (05:06 +0000)]
Added option to enable generating less precise mad (multiply addition)
for those architectures that support the instruction.

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

15 years agoThe last use in a block that doesn't have successors
Dan Gohman [Fri, 20 Mar 2009 01:28:21 +0000 (01:28 +0000)]
The last use in a block that doesn't have successors
(return or unreachable) is a kill.

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

15 years agoFix typo's.
Evan Cheng [Fri, 20 Mar 2009 00:14:09 +0000 (00:14 +0000)]
Fix typo's.

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

15 years agoFix the Win32 VS2008 build:
Sebastian Redl [Thu, 19 Mar 2009 23:26:52 +0000 (23:26 +0000)]
Fix the Win32 VS2008 build:
 - Make type declarations match the struct/class keyword of the definition.
 - Move AddSignalHandler into the namespace where it belongs.
 - Correctly call functions from template base.
 - Some other small changes.
With this patch, LLVM and Clang should build properly and with far less noise under VS2008.

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

15 years agoAdded MachineInstr::isRegTiedToDefOperand to check for two-addressness.
Evan Cheng [Thu, 19 Mar 2009 20:30:06 +0000 (20:30 +0000)]
Added MachineInstr::isRegTiedToDefOperand to check for two-addressness.

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

15 years agoMore makefile changes to allow dejagnu tests to pass when system tools default to...
Evan Cheng [Thu, 19 Mar 2009 20:27:23 +0000 (20:27 +0000)]
More makefile changes to allow dejagnu tests to pass when system tools default to a different target from the llvm configuration (e.g. 64-bit gcc and 32-bit llvm).

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

15 years agoRenamed unittest files to have a consistent {Tt}est suffix.
Misha Brukman [Thu, 19 Mar 2009 19:09:48 +0000 (19:09 +0000)]
Renamed unittest files to have a consistent {Tt}est suffix.

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

15 years agoSADDO and UADDO are commutative.
Dan Gohman [Thu, 19 Mar 2009 18:53:45 +0000 (18:53 +0000)]
SADDO and UADDO are commutative.

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

15 years agoClear the cached cost when removing a function in
Dale Johannesen [Thu, 19 Mar 2009 18:03:56 +0000 (18:03 +0000)]
Clear the cached cost when removing a function in
the inliner; prevents nondeterministic behavior
when the same address is reallocated.
Don't build call graph nodes for debug intrinsic calls;
they're useless, and there were typically a lot of them.

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

15 years agoAdd a liveness analysis pass for LLVM IR values. This computes
Dan Gohman [Thu, 19 Mar 2009 17:29:04 +0000 (17:29 +0000)]
Add a liveness analysis pass for LLVM IR values. This computes
the set of blocks in which values are used, the set in which
values are live-through, and the set in which values are
killed. For the live-through and killed sets, conservative
approximations are used.

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

15 years agoFix comment typo.
Dale Johannesen [Thu, 19 Mar 2009 17:23:29 +0000 (17:23 +0000)]
Fix comment typo.

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

15 years agoThis pass keeps a map of Instructions to Rank numbers,
Dale Johannesen [Thu, 19 Mar 2009 17:22:53 +0000 (17:22 +0000)]
This pass keeps a map of Instructions to Rank numbers,
and was deleting Instructions without clearing the
corresponding map entry.  This led to nondeterministic
behavior if the same address got allocated to another
Instruction within a short time.

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

15 years agoFix regression in 'tblgen -gen-clang-diags-defs': Emit the diagnostic kind instead...
Ted Kremenek [Thu, 19 Mar 2009 17:18:09 +0000 (17:18 +0000)]
Fix regression in 'tblgen -gen-clang-diags-defs': Emit the diagnostic kind instead of "DIAGNOSTICCONTROLLED".

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

15 years agoFix PEI to not walk off the start of a block when an updated instruction
Chris Lattner [Thu, 19 Mar 2009 17:15:43 +0000 (17:15 +0000)]
Fix PEI to not walk off the start of a block when an updated instruction
is the first in its block.  This is PR3842.

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

15 years agoFix comment typo.
Duncan Sands [Thu, 19 Mar 2009 11:37:15 +0000 (11:37 +0000)]
Fix comment typo.

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

15 years agoFix a couple glaring whitespace issues. This file isn't internally consistent
Nick Lewycky [Thu, 19 Mar 2009 06:31:22 +0000 (06:31 +0000)]
Fix a couple glaring whitespace issues. This file isn't internally consistent
either.

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

15 years agoRemove strange extra semicolons.
Nick Lewycky [Thu, 19 Mar 2009 05:51:39 +0000 (05:51 +0000)]
Remove strange extra semicolons.

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

15 years agoAdd support to tablegen for naming the nodes themselves, not just the operands,
Nate Begeman [Thu, 19 Mar 2009 05:21:56 +0000 (05:21 +0000)]
Add support to tablegen for naming the nodes themselves, not just the operands,
in selectiondag patterns.  This is required for the upcoming shuffle_vector rewrite,
and as it turns out, cleans up a hack in the Alpha instruction info.

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

15 years agoAdded support for Mips O32 Calling Convention
Bruno Cardoso Lopes [Thu, 19 Mar 2009 02:12:28 +0000 (02:12 +0000)]
Added support for Mips O32 Calling Convention

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

15 years agotblgen -gen-clang-diags-options: Output OptionTable entries in lexicographic
Ted Kremenek [Wed, 18 Mar 2009 21:36:46 +0000 (21:36 +0000)]
tblgen -gen-clang-diags-options: Output OptionTable entries in lexicographic
order.

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

15 years ago'tblgen -gen-clang-diags-options' now outputs the OptionTable:
Ted Kremenek [Wed, 18 Mar 2009 21:28:47 +0000 (21:28 +0000)]
'tblgen -gen-clang-diags-options' now outputs the OptionTable:

  static const WarningOption OptionTable[] = {
    {"unused-macros", DIAGS(UnusedMacrosDiags)}
    ...
  };

This table is not yet properly sorted.

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

15 years agoAdd another Clang TableGen-backend (-gen-clang-diags-options) for emitting
Ted Kremenek [Wed, 18 Mar 2009 21:16:16 +0000 (21:16 +0000)]
Add another Clang TableGen-backend (-gen-clang-diags-options) for emitting
declarations for controlling groups of warnings. Currently this transforms:

  def UnusedMacrosDiags : Option<"unused-macros", [pp_macro_not_used]>;

into:

  static const diag::kind UnusedMacrosDiags[] = { diag::pp_macro_not_used };

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

15 years agoinclude the null at the end of a memorybuffer as part of the buffer.
Chris Lattner [Wed, 18 Mar 2009 20:36:45 +0000 (20:36 +0000)]
include the null at the end of a memorybuffer as part of the buffer.
This allows tblgen to handle include "foo.td" when the quote is exactly
the last character in a file.  rdar://6695728

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

15 years agoThese tests are now passing on Darwin because of r67139.
Bill Wendling [Wed, 18 Mar 2009 17:45:11 +0000 (17:45 +0000)]
These tests are now passing on Darwin because of r67139.

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

15 years agoaha, DAE does have to think about PHI nodes. Many thanks to "Dr Evil" (aka Duncan)
Chris Lattner [Wed, 18 Mar 2009 16:48:45 +0000 (16:48 +0000)]
aha, DAE does have to think about PHI nodes.  Many thanks to "Dr Evil" (aka Duncan)
for pointing this out :)

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

15 years agoFix PR3826 - InstComb assert with vector shift, by not calling ComputeNumSignBits...
Chris Lattner [Wed, 18 Mar 2009 16:32:19 +0000 (16:32 +0000)]
Fix PR3826 - InstComb assert with vector shift, by not calling ComputeNumSignBits on a vector.

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

15 years agoadd an assertion to make it clear that PHI nodes are not allowed.
Chris Lattner [Wed, 18 Mar 2009 16:23:56 +0000 (16:23 +0000)]
add an assertion to make it clear that PHI nodes are not allowed.

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

15 years agoExplicitly check for StoreInst, do not lose the chance to delete
Zhou Sheng [Wed, 18 Mar 2009 12:48:48 +0000 (12:48 +0000)]
Explicitly check for StoreInst, do not lose the chance to delete
unused loads or bitcasts.

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

15 years agoRevert my previous change on Local.cpp, instead, fix the bug on scalarrepl.
Zhou Sheng [Wed, 18 Mar 2009 10:13:08 +0000 (10:13 +0000)]
Revert my previous change on Local.cpp, instead, fix the bug on scalarrepl.
If the instruction has no users, it is also not only used by debug info
and should not be deleted.

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

15 years agoAdd -relocation-model=pic so that the test works
Rafael Espindola [Wed, 18 Mar 2009 09:38:28 +0000 (09:38 +0000)]
Add -relocation-model=pic so that the test works
both in Linux and Darwin.

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

15 years agoFix a bug.
Zhou Sheng [Wed, 18 Mar 2009 07:56:13 +0000 (07:56 +0000)]
Fix a bug.
If I->use_empty(), this method should return false.

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

15 years agoAdded missing support for widening when splitting an unary op (PR3683)
Mon P Wang [Wed, 18 Mar 2009 06:24:04 +0000 (06:24 +0000)]
Added missing support for widening when splitting an unary op (PR3683)
and expanding a bit convert (PR3711).  In both cases, we extract the
valid part of the widen vector and then do the conversion.

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

15 years agoAdd another test case for r64440.
Evan Cheng [Wed, 18 Mar 2009 02:43:01 +0000 (02:43 +0000)]
Add another test case for r64440.

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

15 years agoxfail these tests for now.
Evan Cheng [Wed, 18 Mar 2009 00:44:45 +0000 (00:44 +0000)]
xfail these tests for now.

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

15 years agoDisable the "call to immediate" optimization on x86-64. It is
Chris Lattner [Wed, 18 Mar 2009 00:43:52 +0000 (00:43 +0000)]
Disable the "call to immediate" optimization on x86-64.  It is
not safe in general because the immediate could be an arbitrary
value that does not fit in a 32-bit pcrel displacement.
Conservatively fall back to loading the value into a register
and calling through it.

We still do the optzn on X86-32.

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

15 years agoFix PR3807 by inserting 'insertelement' instructions in the normal dest of
Chris Lattner [Wed, 18 Mar 2009 00:31:45 +0000 (00:31 +0000)]
Fix PR3807 by inserting 'insertelement' instructions in the normal dest of
an invoke instead of after the invoke (in its block), which is invalid.

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

15 years agoA more proper -mtriple.
Bill Wendling [Wed, 18 Mar 2009 00:19:44 +0000 (00:19 +0000)]
A more proper -mtriple.

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

15 years agoTemporary fix. I think Rafael wanted this to be Linux-only.
Bill Wendling [Wed, 18 Mar 2009 00:16:36 +0000 (00:16 +0000)]
Temporary fix. I think Rafael wanted this to be Linux-only.

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

15 years agoLSR shouldn't ever try to hack on integer IV's larger than 64-bits. Right now
Chris Lattner [Tue, 17 Mar 2009 23:58:30 +0000 (23:58 +0000)]
LSR shouldn't ever try to hack on integer IV's larger than 64-bits.  Right now
it is not APInt clean, but even when it is it needs to be evaluated carefully
to determine whether it is actually profitable.

This fixes a crash on PR3806

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

15 years agoDon't force promotion of return arguments on the callee.
Rafael Espindola [Tue, 17 Mar 2009 23:43:59 +0000 (23:43 +0000)]
Don't force promotion of return arguments on the callee.
Some architectures (like x86) don't require it.
This fixes bug 3779.

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

15 years agoAdd BUILTIN_EXPECT Support/Compiler macro.
Daniel Dunbar [Tue, 17 Mar 2009 21:15:18 +0000 (21:15 +0000)]
Add BUILTIN_EXPECT Support/Compiler macro.
 - Use for exceptional buffer conditions in raw_ostream:write to shave
   off a cycle or two.

 - Please rename if you have a better one.

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

15 years agothis is apparently passing now. Evan/Dan, please check
Chris Lattner [Tue, 17 Mar 2009 20:23:43 +0000 (20:23 +0000)]
this is apparently passing now.  Evan/Dan, please check
to see if this is producing the expected code or not, I'm
not sure what the test was intended to check.

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

15 years agotest case for rev. 67095.
Devang Patel [Tue, 17 Mar 2009 19:47:21 +0000 (19:47 +0000)]
test case for rev. 67095.

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

15 years agoFix codegen to compute the size of an allocation by multiplying the
Chris Lattner [Tue, 17 Mar 2009 19:36:00 +0000 (19:36 +0000)]
Fix codegen to compute the size of an allocation by multiplying the
size by the array amount as an i32 value instead of promoting from
i32 to i64 then doing the multiply.  Not doing this broke wrap-around
assumptions that the optimizers (validly) made.  The ultimate real
fix for this is to introduce i64 version of alloca and remove mallocinst.

This fixes PR3829

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

15 years agoRemove a condition which is always true.
Chris Lattner [Tue, 17 Mar 2009 17:55:15 +0000 (17:55 +0000)]
Remove a condition which is always true.

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

15 years agoAdd newline at end of file.
Evan Cheng [Tue, 17 Mar 2009 17:08:25 +0000 (17:08 +0000)]
Add newline at end of file.

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

15 years agoCellSPU:
Scott Michel [Tue, 17 Mar 2009 16:45:16 +0000 (16:45 +0000)]
CellSPU:
Revert inadvertent mis-fix of fneg.

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

15 years agoMinimal raw_ostream unit tests
Daniel Dunbar [Tue, 17 Mar 2009 16:14:59 +0000 (16:14 +0000)]
Minimal raw_ostream unit tests

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

15 years agor66870 missed this out.
Sanjiv Gupta [Tue, 17 Mar 2009 15:46:15 +0000 (15:46 +0000)]
r66870 missed this out.

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

15 years agotypo
Gabor Greif [Tue, 17 Mar 2009 11:38:29 +0000 (11:38 +0000)]
typo

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

15 years agoReapply r67049, with the test adjusted for darwin
Duncan Sands [Tue, 17 Mar 2009 09:46:22 +0000 (09:46 +0000)]
Reapply r67049, with the test adjusted for darwin
(which produces "call L_f$stub" rather than "call f").

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

15 years agoFix a problem with DAGCombine where we were building an illegal build
Mon P Wang [Tue, 17 Mar 2009 06:33:10 +0000 (06:33 +0000)]
Fix a problem with DAGCombine where we were building an illegal build
vector shuffle mask. Forced the mask to be built using i32.  Note: this will
be irrelevant once vector_shuffle no longer takes a build vector for the
shuffle mask.

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

15 years agoRecognize bswapl as bswap too.
Dan Gohman [Tue, 17 Mar 2009 02:45:40 +0000 (02:45 +0000)]
Recognize bswapl as bswap too.

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

15 years agoRecognize "bswapq" as an alternate spelling for the bswap instruction.
Dan Gohman [Tue, 17 Mar 2009 02:17:27 +0000 (02:17 +0000)]
Recognize "bswapq" as an alternate spelling for the bswap instruction.

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

15 years agoraw_ostream: Return '*this' explicitly (instead of implicitly via
Daniel Dunbar [Tue, 17 Mar 2009 01:53:36 +0000 (01:53 +0000)]
raw_ostream: Return '*this' explicitly (instead of implicitly via
write) to expose more alias information.

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

15 years agoraw_ostream: Put all exceptional conditions in raw_ostream::write
Daniel Dunbar [Tue, 17 Mar 2009 01:36:56 +0000 (01:36 +0000)]
raw_ostream: Put all exceptional conditions in raw_ostream::write
under a single branch.

Also, add a FIXME for formatted output.

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

15 years agoSpiller may unfold load / mod / store instructions as an optimization when the would...
Evan Cheng [Tue, 17 Mar 2009 01:23:09 +0000 (01:23 +0000)]
Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded.

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

15 years agoCellSPU:
Scott Michel [Tue, 17 Mar 2009 01:15:45 +0000 (01:15 +0000)]
CellSPU:
- Fix fabs, fneg for f32 and f64.
- Use BuildVectorSDNode.isConstantSplat, now that the functionality exists
- Continue to improve i64 constant lowering. Lower certain special constants
  to the constant pool when they correspond to SPU's shufb instruction's
  special mask values. This avoids the overhead of performing a shuffle on a
  zero-filled vector just to get the special constant when the memory load
  suffices.

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

15 years agoraw_ostream: Rework implementation of unbuffered streams so outputting
Daniel Dunbar [Tue, 17 Mar 2009 01:13:35 +0000 (01:13 +0000)]
raw_ostream: Rework implementation of unbuffered streams so outputting
a single character requires only one branch to follow slow path.
 - Never use a buffer when writing on an unbuffered stream.

 - Move default buffer size to header.

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

15 years agoFix a debug info dependency in jump threading.
Dale Johannesen [Tue, 17 Mar 2009 00:38:24 +0000 (00:38 +0000)]
Fix a debug info dependency in jump threading.

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

15 years agoraw_ostream: Replace flush_impl with write_impl, which takes data to
Daniel Dunbar [Mon, 16 Mar 2009 23:29:31 +0000 (23:29 +0000)]
raw_ostream: Replace flush_impl with write_impl, which takes data to
write as arguments.
 - Add raw_ostream::GetNumBytesInBuffer.
 - Privatize buffer pointers.
 - Get rid of slow and unnecessary code for writing out large strings.

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

15 years agoraw_ostream: Lift out flush_nonempty.
Daniel Dunbar [Mon, 16 Mar 2009 22:55:06 +0000 (22:55 +0000)]
raw_ostream: Lift out flush_nonempty.
 - Flush a known non-empty buffers; enforces the interface to
   flush_impl and kills off HandleFlush (which I saw no reason to be
   an inline method, Chris?).

 - Clarify invariant that flush_impl is only called with OutBufCur >
   OutBufStart.

 - This also cleary collects all places where we have to deal with the
   buffer possibly not existing.

 - A few more comments and fixing the unbuffered behavior remain in
   this commit sequence.

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

15 years agoCMake: Build system fixes for XCode. llvm-config still causes us some serious trouble...
Douglas Gregor [Mon, 16 Mar 2009 22:53:26 +0000 (22:53 +0000)]
CMake: Build system fixes for XCode. llvm-config still causes us some serious trouble, but it's less serious than it used to be

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

15 years agoMake raw_ostream::operator<<(const void *) fast; it doesn't matter but
Daniel Dunbar [Mon, 16 Mar 2009 22:08:44 +0000 (22:08 +0000)]
Make raw_ostream::operator<<(const void *) fast; it doesn't matter but
it is easy.

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

15 years agoAdd slow path for single character write, and use exclusively for
Daniel Dunbar [Mon, 16 Mar 2009 22:00:17 +0000 (22:00 +0000)]
Add slow path for single character write, and use exclusively for
single characters writes outside of the fast path in raw_ostream.h

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

15 years agoCMake: Make sure to build TableGen'd files in the binary directory
Douglas Gregor [Mon, 16 Mar 2009 21:35:18 +0000 (21:35 +0000)]
CMake: Make sure to build TableGen'd files in the binary directory

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

15 years ago--- Reverse-merging (from foreign repository) r67049 into '.':
Bill Wendling [Mon, 16 Mar 2009 20:27:20 +0000 (20:27 +0000)]
--- Reverse-merging (from foreign repository) r67049 into '.':
U    test/CodeGen/X86/2009-03-13-PHIElimBug.ll
D    test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll
U    lib/CodeGen/PHIElimination.cpp

r67049 was causing this failure:

Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784
Failed with exit(1) at line 1
while running:  llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll |  llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl
child process exited abnormally

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

15 years agoTweak the fix for PR3784: be less sensitive about just
Duncan Sands [Mon, 16 Mar 2009 19:58:38 +0000 (19:58 +0000)]
Tweak the fix for PR3784: be less sensitive about just
how invokes are set up.  The fix could be disturbed by
register copies coming after the EH_LABEL, and also didn't
behave quite right when it was the invoke result that
was used in a phi node.  Also (see new testcase) fix
another phi elimination bug while there: register copies
in the landing pad need to come after the EH_LABEL, because
that's where execution branches to when unwinding.  If they
come before the EH_LABEL then they will never be executed...
Also tweak the original testcase so it doesn't use a no-longer
existing counter.
The accumulated phi elimination changes fix two of seven Ada
testsuite failures that turned up after landing pad critical
edge splitting was turned off.  So there's probably more to come.

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

15 years agoCellSPU:
Scott Michel [Mon, 16 Mar 2009 18:47:25 +0000 (18:47 +0000)]
CellSPU:
Incorporate Tilmann's 128-bit operation patch. Evidently, it gets the
llvm-gcc bootstrap a bit further along.

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

15 years agochange this to test for an alias result more directly.
Chris Lattner [Mon, 16 Mar 2009 18:28:27 +0000 (18:28 +0000)]
change this to test for an alias result more directly.

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

15 years agoAdd TGSourceMgr.cpp to CMake build, sort lines
Douglas Gregor [Mon, 16 Mar 2009 17:04:14 +0000 (17:04 +0000)]
Add TGSourceMgr.cpp to CMake build, sort lines

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

15 years agoThis causes incorrect stack frame allocation when the last object is an array allocat...
Bruno Cardoso Lopes [Sun, 15 Mar 2009 23:28:07 +0000 (23:28 +0000)]
This causes incorrect stack frame allocation when the last object is an array allocated on the stack which would lead
the compiled program to run over its stack. Thanks to Gil Dogon

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

15 years agoSimplify. "Broken" is always true here.
Nick Lewycky [Sun, 15 Mar 2009 06:40:32 +0000 (06:40 +0000)]
Simplify. "Broken" is always true here.

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

15 years agoRemove obviously redundant call.
Nick Lewycky [Sun, 15 Mar 2009 06:39:52 +0000 (06:39 +0000)]
Remove obviously redundant call.

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

15 years agoGive the pre-alloc splitter access to the VirtRegMap. It doesn't do anything
Owen Anderson [Sat, 14 Mar 2009 21:40:05 +0000 (21:40 +0000)]
Give the pre-alloc splitter access to the VirtRegMap.  It doesn't do anything
useful with it at the moment, but it will in the future.

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

15 years agoAdd a replacement for 2009-02-12-GEPNoalias.ll that works without -debug.
Nick Lewycky [Sat, 14 Mar 2009 19:40:09 +0000 (19:40 +0000)]
Add a replacement for 2009-02-12-GEPNoalias.ll that works without -debug.

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

15 years agoApply a patch by Micah Villmow to fix AsmParser to accept vector
Dan Gohman [Sat, 14 Mar 2009 17:09:17 +0000 (17:09 +0000)]
Apply a patch by Micah Villmow to fix AsmParser to accept vector
shift constant expressions, and add support for folding vector
shift constant expressions. This fixes PR3802.

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

15 years agoFix Clang build for srcdir != objdir
Sebastian Redl [Sat, 14 Mar 2009 14:42:51 +0000 (14:42 +0000)]
Fix Clang build for srcdir != objdir

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

15 years agoAdd support for generating Clang diagnostic defs to Makefile.rules.
Sebastian Redl [Sat, 14 Mar 2009 11:59:18 +0000 (11:59 +0000)]
Add support for generating Clang diagnostic defs to Makefile.rules.

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