oota-llvm.git
11 years agoRemove one of the odious 'Raw' methods.
Bill Wendling [Fri, 1 Feb 2013 00:48:14 +0000 (00:48 +0000)]
Remove one of the odious 'Raw' methods.

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

11 years agoUse iterators instead of relying upon a bitmask of attributes to remove attributes...
Bill Wendling [Fri, 1 Feb 2013 00:13:50 +0000 (00:13 +0000)]
Use iterators instead of relying upon a bitmask of attributes to remove attributes from an AttrBuilder.

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

11 years agoRewrite instsimplify's handling if icmp on pointer values to remove the
Dan Gohman [Fri, 1 Feb 2013 00:11:13 +0000 (00:11 +0000)]
Rewrite instsimplify's handling if icmp on pointer values to remove the
remaining use of AliasAnalysis concepts such as isIdentifiedObject to
prove pointer inequality.

@external_compare in test/Transforms/InstSimplify/compare.ll shows a simple
case where a noalias argument can be equal to a global variable address, and
while AliasAnalysis can get away with saying that these pointers don't alias,
instsimplify cannot say that they are not equal.

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

11 years agoFix another typo in the classof definitions that doesn't (currently)
Chandler Carruth [Fri, 1 Feb 2013 00:04:33 +0000 (00:04 +0000)]
Fix another typo in the classof definitions that doesn't (currently)
have any effect. Spotted by Eli in review, thanks!!!

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

11 years agoAdd iterators to the AttributeSet class so that we can access the Attributes in a...
Bill Wendling [Thu, 31 Jan 2013 23:53:05 +0000 (23:53 +0000)]
Add iterators to the AttributeSet class so that we can access the Attributes in a nice way.

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

11 years agoAn alloca can be equal to an argument. It can't *alias* an alloca, but it could
Dan Gohman [Thu, 31 Jan 2013 23:49:33 +0000 (23:49 +0000)]
An alloca can be equal to an argument. It can't *alias* an alloca, but it could
be equal, since there's nothing preventing a caller from correctly predicting
the stack location of an alloca.

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

11 years agoSwitch the code added in r173885 to use the new, shiny RTTI
Chandler Carruth [Thu, 31 Jan 2013 23:43:14 +0000 (23:43 +0000)]
Switch the code added in r173885 to use the new, shiny RTTI
infrastructure on MCStreamer to test for whether there is an
MCELFStreamer object available.

This is just a cleanup on the AsmPrinter side of things, moving ad-hoc
tests of random APIs to a direct type query. But the AsmParser
completely broken. There were no tests, it just blindly cast its
streamer to an MCELFStreamer and started manipulating it.

I don't have a test case -- this actually failed on LLVM's own
regression test suite. Unfortunately the failure only appears when the
stars, compilers, and runtime align to misbehave when we read a pointer
to a formatted_raw_ostream as-if it were an MCAssembler. =/

UBSan would catch this immediately.

Many thanks to Matt for doing about 80% of the debugging work here in
GDB, Jim for helping to explain how exactly to fix this, and others for
putting up with the hair pulling that ensued during debugging it.

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

11 years agoFix a think-o in the condition here. =[ I would commit the test that
Chandler Carruth [Thu, 31 Jan 2013 23:43:12 +0000 (23:43 +0000)]
Fix a think-o in the condition here. =[ I would commit the test that
caught this, but I want that in a separate commit in case there is
a need to revert the actual functional bit as part of reverting other
patches. This way, the commits relating to just getting the RTTI bits in
place are separate from the functional changes that start using them.

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

11 years agos/AttrBuilder::addAttributes/AttrBuilder::addAttribute/g because that's more descript...
Bill Wendling [Thu, 31 Jan 2013 23:38:01 +0000 (23:38 +0000)]
s/AttrBuilder::addAttributes/AttrBuilder::addAttribute/g because that's more descriptive of what it actually is.

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

11 years agoFix a copy/paste-o that got missed because 'check' doesn't build lto.
Chandler Carruth [Thu, 31 Jan 2013 23:34:47 +0000 (23:34 +0000)]
Fix a copy/paste-o that got missed because 'check' doesn't build lto.

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

11 years agoGive the MCStreamer class hierarchy LLVM RTTI facilities for use with
Chandler Carruth [Thu, 31 Jan 2013 23:29:57 +0000 (23:29 +0000)]
Give the MCStreamer class hierarchy LLVM RTTI facilities for use with
isa<> and dyn_cast<>. In several places, code is already hacking around
the absence of this, and there seem to be several interfaces that might
be lifted and/or devirtualized using this.

This change was based on a discussion with Jim Grosbach about how best
to handle testing for specific MCStreamer subclasses. He said that this
was the correct end state, and everything else was too hacky so
I decided to just make it so.

No functionality should be changed here, this is just threading the kind
through all the constructors and setting up the classof overloads.

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

11 years agoRemove the AttrBuilder form of the Attribute::get creators.
Bill Wendling [Thu, 31 Jan 2013 23:16:25 +0000 (23:16 +0000)]
Remove the AttrBuilder form of the Attribute::get creators.

The AttrBuilder is for building a collection of attributes. The Attribute object
holds only one attribute. So it's not really useful for the Attribute object to
have a creator which takes an AttrBuilder.

This has two fallouts:

1. The AttrBuilder no longer holds its internal attributes in a bit-mask form.
2. The attributes are now ordered alphabetically (hence why the tests have changed).

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

11 years agoRegenerate configure to hopefully fix buildbot breakage. Oh how I love autoconf.
Richard Smith [Thu, 31 Jan 2013 23:02:23 +0000 (23:02 +0000)]
Regenerate configure to hopefully fix buildbot breakage. Oh how I love autoconf.

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

11 years agoUpdate AMDGPURegisterInfo::eliminateFrameIndex() corresponding to r174083.
NAKAMURA Takumi [Thu, 31 Jan 2013 22:55:51 +0000 (22:55 +0000)]
Update AMDGPURegisterInfo::eliminateFrameIndex() corresponding to r174083.

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

11 years agoAdd -Wno-nested-anon-types to -pedantic builds of LLVM. This Clang warning
Richard Smith [Thu, 31 Jan 2013 22:19:12 +0000 (22:19 +0000)]
Add -Wno-nested-anon-types to -pedantic builds of LLVM. This Clang warning
catches uses of an extremely minor and widely-available C++ extension (which
every C++ compiler I could find supports, but EDG and Clang reject in strict
mode).

The diagnosed code pattern looks like this:

struct X {
  union {
    struct {
      int a;
      int b;
    } S;
  };
};

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

11 years ago[lit] Add a test for internal shell execution behaviors.
Daniel Dunbar [Thu, 31 Jan 2013 22:15:20 +0000 (22:15 +0000)]
[lit] Add a test for internal shell execution behaviors.

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

11 years ago[lit] Change to raise InternalShellError for all command execution issues.
Daniel Dunbar [Thu, 31 Jan 2013 22:15:15 +0000 (22:15 +0000)]
[lit] Change to raise InternalShellError for all command execution issues.

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

11 years agoDocument another instsimplify assumption.
Dan Gohman [Thu, 31 Jan 2013 22:13:00 +0000 (22:13 +0000)]
Document another instsimplify assumption.

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

11 years agoR600: Fold clamp, neg, abs
Tom Stellard [Thu, 31 Jan 2013 22:11:54 +0000 (22:11 +0000)]
R600: Fold clamp, neg, abs

Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174099 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: Consider bitcast when folding const_address node.
Tom Stellard [Thu, 31 Jan 2013 22:11:53 +0000 (22:11 +0000)]
R600: Consider bitcast when folding const_address node.

Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174098 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: Make store_dummy intrinsic more general by passing export type
Tom Stellard [Thu, 31 Jan 2013 22:11:46 +0000 (22:11 +0000)]
R600: Make store_dummy intrinsic more general by passing export type

Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174097 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unused variable, which should have been removed with r174083.
Chad Rosier [Thu, 31 Jan 2013 21:23:44 +0000 (21:23 +0000)]
Remove unused variable, which should have been removed with r174083.

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

11 years agoLinker: correctly link in dbg.declare
Manman Ren [Thu, 31 Jan 2013 21:19:18 +0000 (21:19 +0000)]
Linker: correctly link in dbg.declare

This is a re-worked version of r174048.
Given source IR:
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15
we used to generate
call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29
!27 = metadata !{null}

With this patch, we will correctly generate
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28

Looking up %argc.addr in ValueMap will return null, since %argc.addr is already
correctly set up, we can use identity mapping.

rdar://problem/13089880

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

11 years agoAdd support for emitting a string attribute.
Bill Wendling [Thu, 31 Jan 2013 20:59:05 +0000 (20:59 +0000)]
Add support for emitting a string attribute.

Attributes that are strings are typically target-dependent attributes. They are
of this form in the IR:

   "attr"
   "attr" = "val"

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

11 years ago[lit] Fix bug where InternalShellError messages were discarded.
Daniel Dunbar [Thu, 31 Jan 2013 20:58:16 +0000 (20:58 +0000)]
[lit] Fix bug where InternalShellError messages were discarded.
 - Also, change the exit code to match 'sh'.

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

11 years agoAdd braces, so my head doesn't explode.
Chad Rosier [Thu, 31 Jan 2013 20:57:50 +0000 (20:57 +0000)]
Add braces, so my head doesn't explode.

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

11 years ago[lit] Fix a shell parsing bug with ';' not separated by whitespace.
Daniel Dunbar [Thu, 31 Jan 2013 20:51:17 +0000 (20:51 +0000)]
[lit] Fix a shell parsing bug with ';' not separated by whitespace.
 - Testing finds bugs, who knew.

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

11 years agoUpdate AArch64 backend to changed eliminateFrameIndex interface.
Tim Northover [Thu, 31 Jan 2013 20:46:53 +0000 (20:46 +0000)]
Update AArch64 backend to changed eliminateFrameIndex interface.

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

11 years agoWhen lowering memcpys to loads and stores, make sure we don't promote alignments
Lang Hames [Thu, 31 Jan 2013 20:23:43 +0000 (20:23 +0000)]
When lowering memcpys to loads and stores, make sure we don't promote alignments
past the natural stack alignment.

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

11 years ago[Dwarf] early exit to avoid creating dangling DIEs
Manman Ren [Thu, 31 Jan 2013 20:05:14 +0000 (20:05 +0000)]
[Dwarf] early exit to avoid creating dangling DIEs

We used to create children DIEs for a scope, then check whether ScopeDIE is
null. If ScopeDIE is null, the children DIEs will be dangling. Other DIEs can
link to those dangling DIEs, which are not emitted at all, causing dwarf error.

The current testing case is 4k lines, from MultiSource/BenchMark/McCat/09-vor.

rdar://problem/13071959

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

11 years ago[PEI] Pass the frame index operand number to the eliminateFrameIndex function.
Chad Rosier [Thu, 31 Jan 2013 20:02:54 +0000 (20:02 +0000)]
[PEI] Pass the frame index operand number to the eliminateFrameIndex function.
Each target implementation was needlessly recomputing the index.
Part of rdar://13076458

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

11 years agointerpreter: Fix errant fallthrough.
Jim Grosbach [Thu, 31 Jan 2013 19:46:59 +0000 (19:46 +0000)]
interpreter: Fix errant fallthrough.

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

11 years agoObject: Fix errant fallthrough.
Jim Grosbach [Thu, 31 Jan 2013 19:46:57 +0000 (19:46 +0000)]
Object: Fix errant fallthrough.

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

11 years agoRuntimeDyld: Fix errant fallthrough.
Jim Grosbach [Thu, 31 Jan 2013 19:46:28 +0000 (19:46 +0000)]
RuntimeDyld: Fix errant fallthrough.

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

11 years agoTurn off missing field initializer warnings for gcc
Edwin Vane [Thu, 31 Jan 2013 18:05:54 +0000 (18:05 +0000)]
Turn off missing field initializer warnings for gcc

gcc produces false positives for empty braces so turning the warning off.
Instead, turning the warning on for clang so proper warnings aren't missed.

Reviewers: dblaikie, chandlerc

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

11 years ago[lit] Add a test for the various ShTest format features.
Daniel Dunbar [Thu, 31 Jan 2013 18:05:01 +0000 (18:05 +0000)]
[lit] Add a test for the various ShTest format features.

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

11 years ago[lit] TestRunner: Eliminate failDueToStderr argument, which is now unused.
Daniel Dunbar [Thu, 31 Jan 2013 18:04:45 +0000 (18:04 +0000)]
[lit] TestRunner: Eliminate failDueToStderr argument, which is now unused.

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

11 years ago[lit] Delete the now-unused SyntaxCheckTest format.
Daniel Dunbar [Thu, 31 Jan 2013 18:04:38 +0000 (18:04 +0000)]
[lit] Delete the now-unused SyntaxCheckTest format.
 - Also, kill the pointless LitFormats module.

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

11 years agoClarify intent.
Jakob Stoklund Olesen [Thu, 31 Jan 2013 17:56:23 +0000 (17:56 +0000)]
Clarify intent.

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

11 years ago[MC] bundle alignment: prevent padding instructions from crossing bundle boundaries
Derek Schuff [Thu, 31 Jan 2013 17:00:03 +0000 (17:00 +0000)]
[MC] bundle alignment: prevent padding instructions from crossing bundle boundaries

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

11 years agoAdd myself as code owner of AArch64 backend.
Tim Northover [Thu, 31 Jan 2013 12:51:16 +0000 (12:51 +0000)]
Add myself as code owner of AArch64 backend.

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

11 years agoAdd AArch64 as an experimental target.
Tim Northover [Thu, 31 Jan 2013 12:12:40 +0000 (12:12 +0000)]
Add AArch64 as an experimental target.

This patch adds support for AArch64 (ARM's 64-bit architecture) to
LLVM in the "experimental" category. Currently, it won't be built
unless requested explicitly.

This initial commit should have support for:
    + Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions
      (except the late addition CRC instructions).
    + CodeGen features required for C++03 and C99.
    + Compilation for the "small" memory model: code+static data <
      4GB.
    + Absolute and position-independent code.
    + GNU-style (i.e. "__thread") TLS.
    + Debugging information.

The principal omission, currently, is performance tuning.

This patch excludes the NEON support also reviewed due to an outbreak of
batshit insanity in our legal department. That will be committed soon bringing
the changes to precisely what has been approved.

Further reviews would be gratefully received.

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

11 years agoMade the min-trip-count-switch test X86-specific to avoid
Pekka Jaaskelainen [Thu, 31 Jan 2013 10:33:22 +0000 (10:33 +0000)]
Made the min-trip-count-switch test X86-specific to avoid
breakage with builds without X86-support.

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

11 years agoAnnotate BumpPtrAllocator for MemorySanitizer.
Evgeniy Stepanov [Thu, 31 Jan 2013 09:58:59 +0000 (09:58 +0000)]
Annotate BumpPtrAllocator for MemorySanitizer.

This change adds MemorySanitizer annotations to BumpPtrAllocator to
improve report quality.

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

11 years agoRevert r173946. This breaks compilation of googletest with Clang
Alexey Samsonov [Thu, 31 Jan 2013 08:02:11 +0000 (08:02 +0000)]
Revert r173946. This breaks compilation of googletest with Clang

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

11 years agoRemove the Attribute::hasAttributes() function.
Bill Wendling [Thu, 31 Jan 2013 06:22:35 +0000 (06:22 +0000)]
Remove the Attribute::hasAttributes() function.

That function doesn't make sense anymore because there's only one attribute per
Attribute object now.

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

11 years agoFixed a mistake in my previous commit where I changed the wording slightly and forgot...
Michael Gottesman [Thu, 31 Jan 2013 05:48:48 +0000 (05:48 +0000)]
Fixed a mistake in my previous commit where I changed the wording slightly and forgot to undo the change after changing my mind and deciding to only commit the style changes.

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

11 years agoFormatting Fix. Changed " to `` around the word 'constant' in the Lang Ref
Michael Gottesman [Thu, 31 Jan 2013 05:44:04 +0000 (05:44 +0000)]
Formatting Fix. Changed " to `` around the word 'constant' in the Lang Ref
section Global Variable so that the style matches the other keywords in
said section.

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

11 years agoRevert r174026, "Remove Attribute::hasAttributes() and make Attribute::hasAttribute...
NAKAMURA Takumi [Thu, 31 Jan 2013 03:47:28 +0000 (03:47 +0000)]
Revert r174026, "Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private."

It broke many hosts to crash.

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

11 years agoChange stripAndComputeConstantOffsets to accept a NULL DataLayout pointer
Dan Gohman [Thu, 31 Jan 2013 02:50:36 +0000 (02:50 +0000)]
Change stripAndComputeConstantOffsets to accept a NULL DataLayout pointer
as well.

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

11 years agoAdd a comment.
Dan Gohman [Thu, 31 Jan 2013 02:45:26 +0000 (02:45 +0000)]
Add a comment.

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

11 years agoMove isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp since
Dan Gohman [Thu, 31 Jan 2013 02:40:59 +0000 (02:40 +0000)]
Move isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp since
it isn't really an AliasAnalysis concept, and ValueTracking has similar things
that it could plausibly share code with some day.

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

11 years agoRemove Attribute::hasAttributes() and make Attribute::hasAttribute() private.
Bill Wendling [Thu, 31 Jan 2013 02:18:19 +0000 (02:18 +0000)]
Remove Attribute::hasAttributes() and make Attribute::hasAttribute() private.

The Attribute::hasAttributes() is kind of meaningless since an Attribute can
have only one attribute. And we would rather people use the 'operator=='
instead of Attribute::hasAttribute().

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

11 years agoChange GetPointerBaseWithConstantOffset's DataLayout argument from a
Dan Gohman [Thu, 31 Jan 2013 02:00:45 +0000 (02:00 +0000)]
Change GetPointerBaseWithConstantOffset's DataLayout argument from a
reference to a pointer, so that it can handle the case where DataLayout
is not available and behave conservatively.

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

11 years agoMake the AttrBuilder creation method of Attribute private so that people won't use it.
Bill Wendling [Thu, 31 Jan 2013 01:51:27 +0000 (01:51 +0000)]
Make the AttrBuilder creation method of Attribute private so that people won't use it.

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

11 years agobuild: @ENABLE_THREADS@ => @LLVM_ENABLE_THREADS@
Saleem Abdulrasool [Thu, 31 Jan 2013 01:34:59 +0000 (01:34 +0000)]
build: @ENABLE_THREADS@ => @LLVM_ENABLE_THREADS@

Makefile.config does not have the value for ENABLE_THREADS substituted as the
variable is called LLVM_ENABLE_THREADS within configure.ac.  This was pointed
out by zygoloid over IRC.

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

11 years ago[lit] Move unittest adaptor code into discovery module.
Daniel Dunbar [Thu, 31 Jan 2013 01:23:39 +0000 (01:23 +0000)]
[lit] Move unittest adaptor code into discovery module.
 - Also, add a test for it.

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

11 years ago[lit] Run the ShUtil tests as part of the test suite.
Daniel Dunbar [Thu, 31 Jan 2013 01:23:26 +0000 (01:23 +0000)]
[lit] Run the ShUtil tests as part of the test suite.

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

11 years ago[lit] Set parallel mode for coverage tests.
Daniel Dunbar [Thu, 31 Jan 2013 01:23:18 +0000 (01:23 +0000)]
[lit] Set parallel mode for coverage tests.

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

11 years ago[lit] Move discovery code into its own module.
Daniel Dunbar [Thu, 31 Jan 2013 01:14:01 +0000 (01:14 +0000)]
[lit] Move discovery code into its own module.

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

11 years agoRevert for now:
Bill Wendling [Thu, 31 Jan 2013 01:04:51 +0000 (01:04 +0000)]
Revert for now:

--- Reverse-merging r174010 into '.':
U    include/llvm/IR/Attributes.h
U    lib/IR/Verifier.cpp
U    lib/IR/Attributes.cpp

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

11 years agoFilecheckized 2x tests in SimplifyCFG and removed their date prefix to fit with curre...
Michael Gottesman [Thu, 31 Jan 2013 01:04:23 +0000 (01:04 +0000)]
Filecheckized 2x tests in SimplifyCFG and removed their date prefix to fit with current llvm style for test names.

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

11 years agoRemove the AttrBuilder version of the Attribute::get function.
Bill Wendling [Thu, 31 Jan 2013 00:53:21 +0000 (00:53 +0000)]
Remove the AttrBuilder version of the Attribute::get function.

The AttrBuilder is there to build up multiple attributes. The Attribute class
represents only one attribute at a time. So remove this unnecessary builder
creator method.

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

11 years agoWhitespace.
Eric Christopher [Thu, 31 Jan 2013 00:50:48 +0000 (00:50 +0000)]
Whitespace.

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

11 years agoCheck and allow floating point registers to select the size of the
Eric Christopher [Thu, 31 Jan 2013 00:50:46 +0000 (00:50 +0000)]
Check and allow floating point registers to select the size of the
register for inline asm. This conforms to how gcc allows for effective
casting of inputs into gprs (fprs is already handled).

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

11 years agoLangRef: Add a Rationale for volatile rules.
Andrew Trick [Thu, 31 Jan 2013 00:49:39 +0000 (00:49 +0000)]
LangRef: Add a Rationale for volatile rules.

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

11 years agoReplace some more greps with FileChecks in tests
Eli Bendersky [Thu, 31 Jan 2013 00:44:12 +0000 (00:44 +0000)]
Replace some more greps with FileChecks in tests

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

11 years agoMinor code simplification.
Dan Gohman [Thu, 31 Jan 2013 00:32:11 +0000 (00:32 +0000)]
Minor code simplification.

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

11 years agoMake sure that the Attribute object represents one attribute only.
Bill Wendling [Thu, 31 Jan 2013 00:29:54 +0000 (00:29 +0000)]
Make sure that the Attribute object represents one attribute only.

Several places were still treating the Attribute object as respresenting
multiple attributes. Those places now use the AttributeSet to represent
multiple attributes.

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

11 years ago[lit] Add a MANIFEST file and a script for sanity checking the source dist.
Daniel Dunbar [Thu, 31 Jan 2013 00:21:59 +0000 (00:21 +0000)]
[lit] Add a MANIFEST file and a script for sanity checking the source dist.

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

11 years ago[lit] Add a basic discovery test.
Daniel Dunbar [Thu, 31 Jan 2013 00:21:51 +0000 (00:21 +0000)]
[lit] Add a basic discovery test.

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

11 years ago[lit] Add a script for checking test coverage.
Daniel Dunbar [Thu, 31 Jan 2013 00:21:44 +0000 (00:21 +0000)]
[lit] Add a script for checking test coverage.

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

11 years ago[lit] Add a test suite for lit itself.
Daniel Dunbar [Thu, 31 Jan 2013 00:21:39 +0000 (00:21 +0000)]
[lit] Add a test suite for lit itself.

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

11 years agostripAndComputeConstantOffsets is only called on pointers; check this
Dan Gohman [Thu, 31 Jan 2013 00:12:20 +0000 (00:12 +0000)]
stripAndComputeConstantOffsets is only called on pointers; check this
with an assert instead of failing and requiring callers to check for failure.

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

11 years agoRewrite this test properly with a FileCheck instead of greps
Eli Bendersky [Thu, 31 Jan 2013 00:11:52 +0000 (00:11 +0000)]
Rewrite this test properly with a FileCheck instead of greps

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

11 years agoFix ConstantFold's folding of icmp instructions to recognize that,
Dan Gohman [Thu, 31 Jan 2013 00:01:45 +0000 (00:01 +0000)]
Fix ConstantFold's folding of icmp instructions to recognize that,
for example, a one-past-the-end pointer from one global variable may
be equal to the base pointer of another global variable.

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

11 years agoAdded a unit test for r173983 that verifies that Target.isiOS() works correctly.
Michael Gottesman [Wed, 30 Jan 2013 23:48:13 +0000 (23:48 +0000)]
Added a unit test for r173983 that verifies that Target.isiOS() works correctly.

As a bonus I put in some extra checks to make sure that we are identifying the
machine word of various Mac OS X/iOS targets appropriately.

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

11 years agoPPC QPX requires a 32-byte aligned stack
Hal Finkel [Wed, 30 Jan 2013 23:43:27 +0000 (23:43 +0000)]
PPC QPX requires a 32-byte aligned stack

On systems which support the QPX vector instructions, the stack must be
32-byte aligned.

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

11 years agoRemove addRetAttributes and addFnAttributes, which aren't useful abstractions.
Bill Wendling [Wed, 30 Jan 2013 23:40:31 +0000 (23:40 +0000)]
Remove addRetAttributes and addFnAttributes, which aren't useful abstractions.

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

11 years agoConvert typeIncompatible to return an AttributeSet.
Bill Wendling [Wed, 30 Jan 2013 23:07:40 +0000 (23:07 +0000)]
Convert typeIncompatible to return an AttributeSet.

There are still places which treat the Attribute object as a collection of
attributes. I'm systematically removing them.

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

11 years agoForgot the test case before.
Evan Cheng [Wed, 30 Jan 2013 22:57:00 +0000 (22:57 +0000)]
Forgot the test case before.

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

11 years agoRestrict sin/cos optimization to 64-bit only for now. 32-bit is a bit messy and less...
Evan Cheng [Wed, 30 Jan 2013 22:56:35 +0000 (22:56 +0000)]
Restrict sin/cos optimization to 64-bit only for now. 32-bit is a bit messy and less critical.

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

11 years agoDoxygenified some comments in IRBuilder.h.
Michael Gottesman [Wed, 30 Jan 2013 22:56:31 +0000 (22:56 +0000)]
Doxygenified some comments in IRBuilder.h.

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

11 years agoRemoved CreateFPExtOrFPTrunc for now until I have the time to get in my vector conver...
Michael Gottesman [Wed, 30 Jan 2013 22:53:21 +0000 (22:53 +0000)]
Removed CreateFPExtOrFPTrunc for now until I have the time to get in my vector convert patch.

What I thought was going to be a quick thing has extended out a little bit in
time *sigh*. So after some thought in order to not cruft up the tree I am
removing this for now since it is the right thing to do.

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

11 years agoInitialize hasQPX in PPCSubtarget
Hal Finkel [Wed, 30 Jan 2013 22:43:44 +0000 (22:43 +0000)]
Initialize hasQPX in PPCSubtarget

This should have gone in with r173973.

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

11 years agoEncapsulate testing that we have an iOS Triple in Triple.h in the method isiOS
Michael Gottesman [Wed, 30 Jan 2013 22:38:19 +0000 (22:38 +0000)]
Encapsulate testing that we have an iOS Triple in Triple.h in the method isiOS
so we follow the convention that all other platforms follow by having an is*
test method.

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

11 years agoRemove redundant code.
Bill Wendling [Wed, 30 Jan 2013 21:22:59 +0000 (21:22 +0000)]
Remove redundant code.

It was creating a new AttrBuilder when we could just fill in the AttrBuilder
we're building.

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

11 years ago...in light of recent activity related to llvm.memcpy flags. I want to
Andrew Trick [Wed, 30 Jan 2013 21:19:35 +0000 (21:19 +0000)]
...in light of recent activity related to llvm.memcpy flags. I want to
prevent an llvm developer from mistakenly thinking that just because the
intrinsic has volatile flags that volatile operations can be converted
to or folded into them.

Platforms may rely on volatile loads and stores of natively supported
data width to be executed as single instruction. When compiling
C, this expectation likely holds for l-values of volatile primitive
types with native hardware support, but not necessarily for aggregate
types. The frontend upholds these expectations, which are not
specified in the IR.

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

11 years agoAdd definitions for the PPC a2q core marked as having QPX available
Hal Finkel [Wed, 30 Jan 2013 21:17:42 +0000 (21:17 +0000)]
Add definitions for the PPC a2q core marked as having QPX available

This is the first commit of a large series which will add support for the
QPX vector instruction set to the PowerPC backend. This instruction set is
used on the IBM Blue Gene/Q supercomputers.

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

11 years agoRemove a mention of TargetInstrDescriptor, which no longer exists in the code
Eli Bendersky [Wed, 30 Jan 2013 20:54:21 +0000 (20:54 +0000)]
Remove a mention of TargetInstrDescriptor, which no longer exists in the code

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

11 years ago[docs] Guide prospective TableGen backend writers.
Sean Silva [Wed, 30 Jan 2013 20:39:46 +0000 (20:39 +0000)]
[docs] Guide prospective TableGen backend writers.

Boilerplate is often the hardest part of getting started with these
kinds of things, so throw them a bone.

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

11 years agoUse the number of 'slots' in the AttributeSetImpl being 0 to indicate that the Attrib...
Bill Wendling [Wed, 30 Jan 2013 19:39:21 +0000 (19:39 +0000)]
Use the number of 'slots' in the AttributeSetImpl being 0 to indicate that the AttributeSet is empty.

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

11 years agoClean up whitespace and indentation a bit
Eli Bendersky [Wed, 30 Jan 2013 19:24:23 +0000 (19:24 +0000)]
Clean up whitespace and indentation a bit

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

11 years agoLinker: correctly link in dbg.declare
Manman Ren [Wed, 30 Jan 2013 17:42:15 +0000 (17:42 +0000)]
Linker: correctly link in dbg.declare

Given source IR:
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15
we used to generate
call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29
!27 = metadata !{null}

With this patch, we will correctly generate
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28

Looking up %argc.addr in ValueMap will return null, since %argc.addr is already
correctly set up, we can use identity mapping.

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

11 years agoAdd a special ARM trap encoding for NaCl.
Eli Bendersky [Wed, 30 Jan 2013 16:30:19 +0000 (16:30 +0000)]
Add a special ARM trap encoding for NaCl.
More details in this thread: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130128/163783.html

Patch by JF Bastien

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

11 years agoAdd missing header and test cases for r173939.
Logan Chien [Wed, 30 Jan 2013 15:48:50 +0000 (15:48 +0000)]
Add missing header and test cases for r173939.

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

11 years agoOverride virtual function for ARM EH directives.
Logan Chien [Wed, 30 Jan 2013 15:39:04 +0000 (15:39 +0000)]
Override virtual function for ARM EH directives.

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

11 years agoLLDB uses ConvertUTF16toUTF8, remove #ifdef
Dmitri Gribenko [Wed, 30 Jan 2013 15:10:12 +0000 (15:10 +0000)]
LLDB uses ConvertUTF16toUTF8, remove #ifdef

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

11 years agoMove UTF conversion routines from clang/lib/Basic to llvm/lib/Support
Dmitri Gribenko [Wed, 30 Jan 2013 12:05:05 +0000 (12:05 +0000)]
Move UTF conversion routines from clang/lib/Basic to llvm/lib/Support

This is required to use them in TableGen.

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

11 years agoDocumentation: Updating the data layout default specifications to
Patrik Hagglund [Wed, 30 Jan 2013 09:02:06 +0000 (09:02 +0000)]
Documentation: Updating the data layout default specifications to
correspond to the code.

Patch by Stephen McGruer.

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