platform/upstream/llvm.git
11 years ago<rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous...
Douglas Gregor [Fri, 8 Mar 2013 22:15:15 +0000 (22:15 +0000)]
<rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous tag declarations encountered during template instantiation.

llvm-svn: 176727

11 years agoArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.
Jordan Rose [Fri, 8 Mar 2013 21:51:21 +0000 (21:51 +0000)]
ArrayRef-ize ASTContext::getFunctionType and Sema::BuildFunctionType.

No (intended) functionality change.

llvm-svn: 176726

11 years ago<rdar://problem/13361742>
Greg Clayton [Fri, 8 Mar 2013 21:46:30 +0000 (21:46 +0000)]
<rdar://problem/13361742>

Don't resolve .o file locations when setting the file spec for each .o file in DWARF with debug map. We should trust the path.

llvm-svn: 176725

11 years ago[ELF] Create baseclass for all ELF writers
Shankar Easwaran [Fri, 8 Mar 2013 21:42:51 +0000 (21:42 +0000)]
[ELF] Create baseclass for all ELF writers

llvm-svn: 176724

11 years ago<rdar://problem/13140795> Transform the scope type of a pseudo-destructor expression...
Douglas Gregor [Fri, 8 Mar 2013 21:25:01 +0000 (21:25 +0000)]
<rdar://problem/13140795> Transform the scope type of a pseudo-destructor expression within the object scope.

We were transforming the scope type of a pseudo-destructor expression
(e.g., the first T in x->T::~T()) as a freestanding type, which meant
that dependent template specialization types here would stay dependent
even when no template parameters were named. This would eventually
mean that a dependent expression would end up in what should be
fully-instantiated ASTs, causing IRgen to assert.

llvm-svn: 176723

11 years agoEarly exit from getAllocationData() and isFreeCall() for intrinsics.
Michael Ilseman [Fri, 8 Mar 2013 21:15:00 +0000 (21:15 +0000)]
Early exit from getAllocationData() and isFreeCall() for intrinsics.

llvm-svn: 176722

11 years agoAssert to bounds check MDNode::getOperand.
David Blaikie [Fri, 8 Mar 2013 21:08:23 +0000 (21:08 +0000)]
Assert to bounds check MDNode::getOperand.

The getOperandPtr utility already bounds checks, but allows one-off-the-end.
This assert should catch the cases that could previously have been dereferencing
these one-off-the-end pointer. Happily, no cases of this came up with this
change.

llvm-svn: 176721

11 years agoRemove trailing whitespace
Michael Ilseman [Fri, 8 Mar 2013 21:03:09 +0000 (21:03 +0000)]
Remove trailing whitespace

llvm-svn: 176720

11 years agoOptionValueFileSpec shouldn't be doing argument
Sean Callanan [Fri, 8 Mar 2013 20:59:47 +0000 (20:59 +0000)]
OptionValueFileSpec shouldn't be doing argument
parsing on the file name it gets.  That confuses
it if there are spaces in the file name.

<rdar://problem/13380392>

llvm-svn: 176719

11 years agoDump the measurements directly instead of getting their metrics first
Enrico Granata [Fri, 8 Mar 2013 20:50:36 +0000 (20:50 +0000)]
Dump the measurements directly instead of getting their metrics first
(this code needs to be pushed up so that in the basic scenarios TestCase knows to dump all its measurements directly)

llvm-svn: 176718

11 years ago[PCH] When complaining that a header from the PCH was modified, also mention
Argyrios Kyrtzidis [Fri, 8 Mar 2013 20:42:38 +0000 (20:42 +0000)]
[PCH] When complaining that a header from the PCH was modified, also mention
the filename of the PCH file.

llvm-svn: 176717

11 years ago[libclang] Modify clang_findReferencesInFile and clang_findIncludesInFile to return...
Argyrios Kyrtzidis [Fri, 8 Mar 2013 20:42:33 +0000 (20:42 +0000)]
[libclang] Modify clang_findReferencesInFile and clang_findIncludesInFile to return a value.

Possible values are:
 1  : if a parameter was invalid
 -1 : if the callback returned CXVisit_Break,
 otherwise returns 0.

llvm-svn: 176716

11 years agoInitial checkin of a new project: LLDB Performance Testing Infrastructure
Enrico Granata [Fri, 8 Mar 2013 20:29:13 +0000 (20:29 +0000)]
Initial checkin of a new project: LLDB Performance Testing Infrastructure

This is a very basic implementation of a library that easily allows to drive LLDB.framework to write test cases for performance

This is separate from the LLDB testsuite in test/ in that:
a) this uses C++ instead of Python to avoid measures being affected by SWIG
b) this is in very early development and needs lots of tweaking before it can be considered functionally complete
c) this is not meant to test correctness but to help catch performance regressions

There is a sample application built against the library (in darwin/sketch) that uses the famous sample app Sketch as an inferior to measure certain basic parameters of LLDB's behavior.
The resulting output is a PLIST much like the following:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>fetch-frames</key>
<real>0.13161715522222225</real>
</dict>
<dict>
<key>file-line-bkpt</key>
<real>0.029111678750000002</real>
</dict>
<dict>
<key>fetch-modules</key>
<real>0.00026376766666666668</real>
</dict>
<dict>
<key>fetch-vars</key>
<real>0.17820429311111111</real>
</dict>
<dict>
<key>run-expr</key>
<real>0.029676525769230768</real>
</dict>
</array>
</plist>

Areas for improvement:
- code cleanups (I will be out of the office for a couple days this coming week, but please keep ideas coming!)
- more metrics and test cases
- better error checking

This toolkit also comprises a simple event-loop-driven controller for LLDB, similar yet much simpler to what the Driver does to implement the lldb command-line tool.

llvm-svn: 176715

11 years agoAdded very lightweight, statically-allocated
Sean Callanan [Fri, 8 Mar 2013 20:04:57 +0000 (20:04 +0000)]
Added very lightweight, statically-allocated
counters for a variety of metrics associated
with expression parsing.  This should give some
idea of how much work the expression parser is
doing on Clang's behalf, and help with hopefully
reducing that load over time.

<rdar://problem/13210748> Audit type search/import for expressions

llvm-svn: 176714

11 years agoRemoving 'modindex' from clang-tools-extra doc index
Edwin Vane [Fri, 8 Mar 2013 19:20:07 +0000 (19:20 +0000)]
Removing 'modindex' from clang-tools-extra doc index

There are no python modules in clang-tools-extra so a link to this
auto-generated page, which currently isn't generated anyway, is not necessary.

llvm-svn: 176713

11 years agoFixing Doxygen warnings in cpp11-migrate
Edwin Vane [Fri, 8 Mar 2013 19:12:12 +0000 (19:12 +0000)]
Fixing Doxygen warnings in cpp11-migrate

Turned on doxygen warnings and fixed the resulting problems.

llvm-svn: 176712

11 years agoParsing floating point numbers with very long precision was broken, and this patch...
Howard Hinnant [Fri, 8 Mar 2013 19:06:24 +0000 (19:06 +0000)]
Parsing floating point numbers with very long precision was broken, and this patch fixes it.  This fixes llvm.org/bugs/show_bug.cgi?id=15445.

llvm-svn: 176711

11 years agoFixes breaking of string literals.
Manuel Klimek [Fri, 8 Mar 2013 18:59:48 +0000 (18:59 +0000)]
Fixes breaking of string literals.

1. We now ignore all non-default string literals, including raw
literals.
2. We do not break inside escape sequences any more.

FIXME: We still break in trigraphs.
llvm-svn: 176710

11 years agoTurned no_xform into a pass from expected failure.
Edwin Vane [Fri, 8 Mar 2013 18:39:07 +0000 (18:39 +0000)]
Turned no_xform into a pass from expected failure.

Since no_xform is not a bug to be fixed, made the test pass using the 'not'
utility and removed XFAIL.

llvm-svn: 176709

11 years agoNo really, don't use end().
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:36:36 +0000 (18:36 +0000)]
No really, don't use end().

Clearly, this function is never actually called with the last
instruction in the function.

llvm-svn: 176708

11 years agoRemove -print-dbginfo as it is unused & bitrotten.
David Blaikie [Fri, 8 Mar 2013 18:17:46 +0000 (18:17 +0000)]
Remove -print-dbginfo as it is unused & bitrotten.

This pass hasn't been touched in two years & would fail with assertions against
the current debug info metadata format (the only test case for it still uses a
many-versions old debug info metadata format)

llvm-svn: 176707

11 years agoRewrite the physreg part of findLastUseBefore().
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:08:57 +0000 (18:08 +0000)]
Rewrite the physreg part of findLastUseBefore().

To find the last use of a register unit, start from the bottom and scan
upwards until a user is found.

<rdar://problem/13353090>

llvm-svn: 176706

11 years agoAvoid creating a SlotIndex from the end() iterator.
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:08:54 +0000 (18:08 +0000)]
Avoid creating a SlotIndex from the end() iterator.

No test case, spotted by inspection.

llvm-svn: 176705

11 years agoRemove unused variable.
Benjamin Kramer [Fri, 8 Mar 2013 17:04:47 +0000 (17:04 +0000)]
Remove unused variable.

llvm-svn: 176704

11 years agoRemove default from fully covered switch.
Benjamin Kramer [Fri, 8 Mar 2013 17:03:19 +0000 (17:03 +0000)]
Remove default from fully covered switch.

llvm-svn: 176703

11 years agoForce cpu in test.
Benjamin Kramer [Fri, 8 Mar 2013 17:01:18 +0000 (17:01 +0000)]
Force cpu in test.

llvm-svn: 176702

11 years agoInsert the reduction start value into the first bypass block to preserve domination.
Benjamin Kramer [Fri, 8 Mar 2013 16:58:37 +0000 (16:58 +0000)]
Insert the reduction start value into the first bypass block to preserve domination.

Fixes PR15344.

llvm-svn: 176701

11 years agoR600: Optimize another selectcc case
Tom Stellard [Fri, 8 Mar 2013 15:37:11 +0000 (15:37 +0000)]
R600: Optimize another selectcc case

fold selectcc (selectcc x, y, a, b, cc), b, a, b, setne ->
     selectcc x, y, a, b, cc

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176700

11 years agoR600: Improve custom lowering of select_cc
Tom Stellard [Fri, 8 Mar 2013 15:37:09 +0000 (15:37 +0000)]
R600: Improve custom lowering of select_cc

Two changes:
1. Prefer SET* instructions when possible
2. Handle the CND*_INT case with floating-point args

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176699

11 years agoR600: Change operation action from Custom to Expand for BR_CC
Tom Stellard [Fri, 8 Mar 2013 15:37:07 +0000 (15:37 +0000)]
R600: Change operation action from Custom to Expand for BR_CC

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176698

11 years agoR600: Change operation action from Custom to Expand for SETCC
Tom Stellard [Fri, 8 Mar 2013 15:37:05 +0000 (15:37 +0000)]
R600: Change operation action from Custom to Expand for SETCC

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176697

11 years agoR600: Set BooleanContents to ZeroOrNegativeOneBooleanContent
Tom Stellard [Fri, 8 Mar 2013 15:37:03 +0000 (15:37 +0000)]
R600: Set BooleanContents to ZeroOrNegativeOneBooleanContent

Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176696

11 years agoLegalizeDAG: Respect the result of TLI.getBooleanContents() when expanding SETCC
Tom Stellard [Fri, 8 Mar 2013 15:37:02 +0000 (15:37 +0000)]
LegalizeDAG: Respect the result of TLI.getBooleanContents() when expanding SETCC

llvm-svn: 176695

11 years agoDAGCombiner: Use correct value type for checking legality of BR_CC v3
Tom Stellard [Fri, 8 Mar 2013 15:36:57 +0000 (15:36 +0000)]
DAGCombiner: Use correct value type for checking legality of BR_CC v3

LegalizeDAG.cpp uses the value of the comparison operands when checking
the legality of BR_CC, so DAGCombiner should do the same.

v2:
  - Expand more BR_CC value types for NVPTX

v3:
  - Expand correct BR_CC value types for Hexagon, Mips, and XCore.

llvm-svn: 176694

11 years agoR600: Change addresspace in fold-kcache.ll
Vincent Lejeune [Fri, 8 Mar 2013 15:34:07 +0000 (15:34 +0000)]
R600: Change addresspace in fold-kcache.ll

AddressSpace definition has changed in a previous commit, reflect it
to avoid false failure.

llvm-svn: 176693

11 years agoAArch64: specify full triple in test as only Linux works for now.
Tim Northover [Fri, 8 Mar 2013 15:27:30 +0000 (15:27 +0000)]
AArch64: specify full triple in test as only Linux works for now.

llvm-svn: 176692

11 years agoR600/SI: adjust test to recent changes
Christian Konig [Fri, 8 Mar 2013 14:44:00 +0000 (14:44 +0000)]
R600/SI: adjust test to recent changes

Signed-off-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176691

11 years agoExtend loop variable naming checks
Edwin Vane [Fri, 8 Mar 2013 14:15:18 +0000 (14:15 +0000)]
Extend loop variable naming checks

The loop convert tests for conflicting names have been extended to check for
macro names, types, and language keywords including language extensions. Tests
have also been added.

Fixes PR15322

Author: Jack Yang <jack.yang@intel.com>
Reviewer: gribozavr, klimek, revane
llvm-svn: 176690

11 years agoHexagon: Add patterns for zero extended loads from i1->i64.
Jyotsna Verma [Fri, 8 Mar 2013 14:15:15 +0000 (14:15 +0000)]
Hexagon: Add patterns for zero extended loads from i1->i64.

llvm-svn: 176689

11 years agoAArch64: expand sincos operations, we don't support them.
Tim Northover [Fri, 8 Mar 2013 13:55:07 +0000 (13:55 +0000)]
AArch64: expand sincos operations, we don't support them.

Patch based on Mans Rullgard's.

llvm-svn: 176688

11 years agoR600/SI: Use source scheduler
Michel Danzer [Fri, 8 Mar 2013 10:58:01 +0000 (10:58 +0000)]
R600/SI: Use source scheduler

This is certainly not the last word on scheduling for this target, but
right now this allows a few apps to run / finish with radeonsi, most
notably UT2004 / Lightsmark. They fail to compile some shaders with the
default scheduler because it ends up trying to spill registers, which
we don't support yet (and which is probably a bad idea in general for
performance if it can be avoided).

NOTE: This is a candidate for the Mesa stable branch.

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176687

11 years agoAdd support for the OpenCL attribute 'vec_type_hint'.
Joey Gouly [Fri, 8 Mar 2013 09:42:32 +0000 (09:42 +0000)]
Add support for the OpenCL attribute 'vec_type_hint'.

Patch by Murat Bolat!

llvm-svn: 176686

11 years agoAdd -verify-misched option.
Andrew Trick [Fri, 8 Mar 2013 05:40:34 +0000 (05:40 +0000)]
Add -verify-misched option.

This verifies live intervals both before and after scheduling. It's
useful for anyone hacking on live interval update.

Note that we don't yet pass verification all the time. We don't yet
handle updating nonallocatable live intervals perfectly.

llvm-svn: 176685

11 years agoUpdate PlatformDarwin to understand how armv7m / armv7em relate
Jason Molenda [Fri, 8 Mar 2013 04:33:44 +0000 (04:33 +0000)]
Update PlatformDarwin to understand how armv7m / armv7em relate
to the other armv7 types as far as compatibility/interchangability
goes.
<rdar://problem/13361372>

llvm-svn: 176684

11 years ago<rdar://problem/13374267>
Greg Clayton [Fri, 8 Mar 2013 02:42:06 +0000 (02:42 +0000)]
<rdar://problem/13374267>

Fixed error where objective C methods with selectors names starting with ".cxx_" where causing errors for ARC built binaries.

llvm-svn: 176683

11 years ago[libclang] Introduce clang_findIncludesInFile, that can be used to retrieve all ...
Argyrios Kyrtzidis [Fri, 8 Mar 2013 02:32:34 +0000 (02:32 +0000)]
[libclang] Introduce clang_findIncludesInFile, that can be used to retrieve all #import/#include directives in a specific file.

It passes to the visitor, that the caller provides, CXCursor_InclusionDirective cursors for
all the include directives in a particular file.

llvm-svn: 176682

11 years ago[libclang] When calling the function of CXCursorAndRangeVisitor, don't forget to
Argyrios Kyrtzidis [Fri, 8 Mar 2013 02:32:29 +0000 (02:32 +0000)]
[libclang] When calling the function of CXCursorAndRangeVisitor, don't forget to
stop visitation if it returns CXVisit_Break.

llvm-svn: 176681

11 years ago[libclang] Add Logger::operator<< overloads for CXCursor and FileEntry.
Argyrios Kyrtzidis [Fri, 8 Mar 2013 02:32:26 +0000 (02:32 +0000)]
[libclang] Add Logger::operator<< overloads for CXCursor and FileEntry.

llvm-svn: 176680

11 years agoAnother test fix for r176671.
David Blaikie [Fri, 8 Mar 2013 02:27:40 +0000 (02:27 +0000)]
Another test fix for r176671.

llvm-svn: 176679

11 years agoCouple of test fixes for r176671.
David Blaikie [Fri, 8 Mar 2013 02:26:16 +0000 (02:26 +0000)]
Couple of test fixes for r176671.

Not sure why these aren't failing on my linux machine, but this should cover
it.

llvm-svn: 176678

11 years agoRevert r176154 in favor of a better approach.
Bill Wendling [Fri, 8 Mar 2013 02:21:08 +0000 (02:21 +0000)]
Revert r176154 in favor of a better approach.

Code generation makes some basic assumptions about the IR it's been given. In
particular, if there is only one 'invoke' in the function, then that invoke
won't be going away. However, with the advent of the `llvm.donothing' intrinsic,
those invokes may go away. If all of them go away, the landing pad no longer has
any users. This confuses the back-end, which asserts.

This happens with SjLj exceptions, because that's the model that modifies the IR
based on there being invokes, etc. in the function.

Remove any invokes of `llvm.donothing' during SjLj EH preparation. This will
give us a CFG that the back-end won't be confused about. If all of the invokes
in a function are removed, then the SjLj EH prepare pass won't insert the bogus
code the relies upon the invokes being there.
<rdar://problem/13228754&13316637>

llvm-svn: 176677

11 years ago<rdar://problem/13119621>
Greg Clayton [Fri, 8 Mar 2013 01:37:30 +0000 (01:37 +0000)]
<rdar://problem/13119621>

Make dynamic type detection faster by using the AST metadata to help out and allow us not to complete types when we don't need to.

After running "purge" on a MacOSX system, the Xcode variables view now populates more than 3x faster with this fix.

llvm-svn: 176676

11 years agoremove an ancient and quaint bit of commented out makefile goo from when
Chris Lattner [Fri, 8 Mar 2013 01:26:10 +0000 (01:26 +0000)]
remove an ancient and quaint bit of commented out makefile goo from when
GCC was the system compiler on the mac.

llvm-svn: 176675

11 years agoAdd recognition of two more armv7 variants, armv7m and armv7em.
Jason Molenda [Fri, 8 Mar 2013 01:20:17 +0000 (01:20 +0000)]
Add recognition of two more armv7 variants, armv7m and armv7em.
<rdar://problem/13361372>

llvm-svn: 176674

11 years agoAdd a comment to break disable's help to make clearer the relationship between the
Jim Ingham [Fri, 8 Mar 2013 00:31:40 +0000 (00:31 +0000)]
Add a comment to break disable's help to make clearer the relationship between the
enable/disable state of a breakpoint, and of its locations.

llvm-svn: 176672

11 years agoUpgrade tests to the latest debug info format.
David Blaikie [Fri, 8 Mar 2013 00:23:31 +0000 (00:23 +0000)]
Upgrade tests to the latest debug info format.

Mostly this is just changing the named metadata (llvm.dbg.sp, llvm.dbg.gv,
llvm.dbg.<func>.lv, etc -> llvm.dbg.cu), adding a few fields to older records
(DIVariable: flags/inlined-at, DICompileUnit: sp/gv/types,
DISubprogram: local variables list)

The tests to update were discovered by a change I'm working on to remove debug
info version support - so any tests using old debug info versions I haven't
updated probably are bad tests or just not actually designed to test debug
info.

llvm-svn: 176671

11 years ago[driver] If we're just linking, don't report --param X as unused option.
Chad Rosier [Fri, 8 Mar 2013 00:05:21 +0000 (00:05 +0000)]
[driver] If we're just linking, don't report --param X as unused option.
PR15327
rdar://13372628

llvm-svn: 176670

11 years agoAdd a getPassName() method.
Jakob Stoklund Olesen [Thu, 7 Mar 2013 23:55:51 +0000 (23:55 +0000)]
Add a getPassName() method.

llvm-svn: 176669

11 years agoRename isEarlierInSameTrace to isUsefulDominator.
Jakob Stoklund Olesen [Thu, 7 Mar 2013 23:55:49 +0000 (23:55 +0000)]
Rename isEarlierInSameTrace to isUsefulDominator.

In very rare cases caused by irreducible control flow, the dominating
block can have the same trace head without actually being part of the
trace.

As long as such a dominator still has valid instruction depths, it is OK
to use it for computing instruction depths.

Rename the function to avoid lying, and add a check that instruction
depths are computed for the dominator.

llvm-svn: 176668

11 years agoHeaderDoc: Support more of HeaderDoc documentation
Fariborz Jahanian [Thu, 7 Mar 2013 23:33:11 +0000 (23:33 +0000)]
HeaderDoc: Support more of HeaderDoc documentation
commands; top level tags such as @interface and
their 2nd level tags such as @coclass, etc.
// rdar://12379114

llvm-svn: 176667

11 years agoAdd code completion for @import <rdar://problem/13344306>.
Douglas Gregor [Thu, 7 Mar 2013 23:26:24 +0000 (23:26 +0000)]
Add code completion for @import <rdar://problem/13344306>.

llvm-svn: 176666

11 years agoImprove LLDB's implicit cast-to-id to work with C++11 auto and any Objective-C object...
Douglas Gregor [Thu, 7 Mar 2013 22:57:58 +0000 (22:57 +0000)]
Improve LLDB's implicit cast-to-id to work with C++11 auto and any Objective-C object type <rdar://problem/13338107>.

llvm-svn: 176665

11 years agoTypeo in warning message.
Jason Molenda [Thu, 7 Mar 2013 22:44:42 +0000 (22:44 +0000)]
Typeo in warning message.

llvm-svn: 176664

11 years agoWhen possible, move __block variables to the heap rather than copying them.
Douglas Gregor [Thu, 7 Mar 2013 22:38:24 +0000 (22:38 +0000)]
When possible, move __block variables to the heap rather than copying them.

Fixes <rdar://problem/13330126>.

llvm-svn: 176663

11 years agoUpdated Apple LLDB version to lldb-300.99.0. Also
Sean Callanan [Thu, 7 Mar 2013 22:29:06 +0000 (22:29 +0000)]
Updated Apple LLDB version to lldb-300.99.0.  Also
updated the build system to support the new Apple
LLDB versioning scheme.

llvm-svn: 176662

11 years agoKeep coding stanard.
Jakub Staszak [Thu, 7 Mar 2013 22:20:06 +0000 (22:20 +0000)]
Keep coding stanard.

llvm-svn: 176661

11 years agoDon't create IRBuilder if we can return from the method earlier.
Jakub Staszak [Thu, 7 Mar 2013 22:10:33 +0000 (22:10 +0000)]
Don't create IRBuilder if we can return from the method earlier.

llvm-svn: 176660

11 years ago[fast-isel] Seriously, add support for the expect intrinsic.
Chad Rosier [Thu, 7 Mar 2013 21:38:33 +0000 (21:38 +0000)]
[fast-isel] Seriously, add support for the expect intrinsic.
rdar://13370942

llvm-svn: 176659

11 years agoPromote atomic type sizes up to a power of two, capped by
John McCall [Thu, 7 Mar 2013 21:37:17 +0000 (21:37 +0000)]
Promote atomic type sizes up to a power of two, capped by
MaxAtomicPromoteWidth.  Fix a ton of terrible bugs with
_Atomic types and (non-intrinsic-mediated) loads and stores
thereto.

llvm-svn: 176658

11 years agoMove the atomics code into its own file.
John McCall [Thu, 7 Mar 2013 21:37:12 +0000 (21:37 +0000)]
Move the atomics code into its own file.

llvm-svn: 176657

11 years agoChange hasAggregateLLVMType, which conflates complex and
John McCall [Thu, 7 Mar 2013 21:37:08 +0000 (21:37 +0000)]
Change hasAggregateLLVMType, which conflates complex and
aggregate types in a profoundly wrong way that has to be
worked around in every call site, to getEvaluationKind,
which classifies and distinguishes between all of these
cases.

Also, normalize the API for loading and storing complexes.

I'm working on a larger patch and wanted to pull these
changes out, but it would have be annoying to detangle
them from each other.

llvm-svn: 176656

11 years agoAdd CharUnits::alignmentAtOffset.
John McCall [Thu, 7 Mar 2013 21:37:02 +0000 (21:37 +0000)]
Add CharUnits::alignmentAtOffset.

llvm-svn: 176655

11 years agoEvaluate compound literals directly into the result aggregate
John McCall [Thu, 7 Mar 2013 21:36:54 +0000 (21:36 +0000)]
Evaluate compound literals directly into the result aggregate
when that aggregate isn't potentially aliased.

llvm-svn: 176654

11 years agoRemove temporary std::vectors that ca be replaced with ArrayRef's magic.
Benjamin Kramer [Thu, 7 Mar 2013 21:18:31 +0000 (21:18 +0000)]
Remove temporary std::vectors that ca be replaced with ArrayRef's magic.

llvm-svn: 176653

11 years agoFix tautological compare. Not sure why this didn't trigger any test failures.
Benjamin Kramer [Thu, 7 Mar 2013 20:56:18 +0000 (20:56 +0000)]
Fix tautological compare. Not sure why this didn't trigger any test failures.

llvm-svn: 176652

11 years agoReplace temporary vectors with arrays.
Benjamin Kramer [Thu, 7 Mar 2013 20:53:34 +0000 (20:53 +0000)]
Replace temporary vectors with arrays.

llvm-svn: 176651

11 years agoRemove unncessary whitespace when triggered on empty line.
Daniel Jasper [Thu, 7 Mar 2013 20:50:00 +0000 (20:50 +0000)]
Remove unncessary whitespace when triggered on empty line.

With the cursor located at "I", clang-format would not do anything to:

int a;

   I

  int b;

With this patch, it reduces the number of empty lines as necessary, and
removes unnecessary whitespace. It does not change/reformat "int a;" or
"int b;".

llvm-svn: 176650

11 years ago[fast-isel] Add support for the expect intrinsic.
Chad Rosier [Thu, 7 Mar 2013 20:42:17 +0000 (20:42 +0000)]
[fast-isel] Add support for the expect intrinsic.
rdar://13370942

llvm-svn: 176649

11 years agoArrayRefize some code. No functionality change.
Benjamin Kramer [Thu, 7 Mar 2013 20:33:29 +0000 (20:33 +0000)]
ArrayRefize some code. No functionality change.

llvm-svn: 176648

11 years agoHexagon: Handle i8, i16 and i1 Var Args.
Jyotsna Verma [Thu, 7 Mar 2013 20:28:34 +0000 (20:28 +0000)]
Hexagon: Handle i8, i16 and i1 Var Args.

llvm-svn: 176647

11 years agoSimplify code. No functionality change.
Jakub Staszak [Thu, 7 Mar 2013 20:22:39 +0000 (20:22 +0000)]
Simplify code. No functionality change.

llvm-svn: 176646

11 years agoChange Index type from unsigned long to unsigned. This should fix PR14980.
Jakub Staszak [Thu, 7 Mar 2013 20:21:27 +0000 (20:21 +0000)]
Change Index type from unsigned long to unsigned. This should fix PR14980.

llvm-svn: 176645

11 years agoFix enum_types test on Linux
Daniel Malea [Thu, 7 Mar 2013 20:13:11 +0000 (20:13 +0000)]
Fix enum_types test on Linux
- Required flag "-std=c++11" needs to be set before including Makefile.rules

llvm-svn: 176644

11 years agoRemove trailing spaces.
Jakub Staszak [Thu, 7 Mar 2013 20:04:17 +0000 (20:04 +0000)]
Remove trailing spaces.

llvm-svn: 176643

11 years agoChange NULL to 0.
Jakub Staszak [Thu, 7 Mar 2013 20:01:47 +0000 (20:01 +0000)]
Change NULL to 0.

llvm-svn: 176642

11 years agoArrayRef ca accept one element. Simplify code a little bit, also it matches now
Jakub Staszak [Thu, 7 Mar 2013 20:01:19 +0000 (20:01 +0000)]
ArrayRef ca accept one element. Simplify code a little bit, also it matches now
coding in the other places of the file.

llvm-svn: 176641

11 years agoAlbert Wong: definition for regex_traits<_CharT>::__regex_word.
Howard Hinnant [Thu, 7 Mar 2013 19:38:08 +0000 (19:38 +0000)]
Albert Wong: definition for regex_traits<_CharT>::__regex_word.

llvm-svn: 176640

11 years agoChange _LIBCPP_TYPE_VIS to use __type_visibility__(default) instead of __visibility__...
Howard Hinnant [Thu, 7 Mar 2013 19:25:03 +0000 (19:25 +0000)]
Change _LIBCPP_TYPE_VIS to use __type_visibility__(default) instead of __visibility__(default) when available.  This change makes just the type_info visible so that types like vectors and strings can be used as exception objects across dylib boundaries even when hidden visibility is specified globally (at the command line), and yet this allows clients to hide the member functions of things like vector and string (with global visibility commands).

llvm-svn: 176639

11 years agopre-RA-sched debug-only fix
Andrew Trick [Thu, 7 Mar 2013 19:21:08 +0000 (19:21 +0000)]
pre-RA-sched debug-only fix

llvm-svn: 176638

11 years agoHexagon: Add support to lower block address.
Jyotsna Verma [Thu, 7 Mar 2013 19:10:28 +0000 (19:10 +0000)]
Hexagon: Add support to lower block address.

llvm-svn: 176637

11 years agopre-RA-sched assertion fix. This bug was exposed by r176037.
Andrew Trick [Thu, 7 Mar 2013 19:07:57 +0000 (19:07 +0000)]
pre-RA-sched assertion fix. This bug was exposed by r176037.

rdar:13370002 [pre-RA-sched] assertion: released too many times

I tracked this down to an earlier hack that is no longer applicable
and interfered with normal scheduler logic. With the changes in
r176037, it was causing an instruction to be scheduled multiple times.

I have an external test case that I tried hard to reduce and
failed. I can't even reproduce with llc.

llvm-svn: 176636

11 years agoMove testcase, this is testing extraction not inserting.
Benjamin Kramer [Thu, 7 Mar 2013 18:51:02 +0000 (18:51 +0000)]
Move testcase, this is testing extraction not inserting.

llvm-svn: 176635

11 years agoX86: Fold EXTRACT_SUBVECTORs of a BUILD_VECTOR into a smaller BUILD_VECTOR.
Benjamin Kramer [Thu, 7 Mar 2013 18:48:40 +0000 (18:48 +0000)]
X86: Fold EXTRACT_SUBVECTORs of a BUILD_VECTOR into a smaller BUILD_VECTOR.

That can usually be lowered efficiently and is common in sandybridge code.
It would be nice to do this in DAGCombiner but we can't insert arbitrary
BUILD_VECTORs this late.

Fixes PR15462.

llvm-svn: 176634

11 years agoFix issue that causes linux buildbots to ignore errors
Daniel Malea [Thu, 7 Mar 2013 18:39:26 +0000 (18:39 +0000)]
Fix issue that causes linux buildbots to ignore errors
- change string "ERROR" to "FAIL" to match clang lit test results

Also, make LLDB tests work on machines that do not have svn and/or git installed

llvm-svn: 176633

11 years agoFixed a crash when cloning a function into a function with
Pekka Jaaskelainen [Thu, 7 Mar 2013 16:46:43 +0000 (16:46 +0000)]
Fixed a crash when cloning a function into a function with
different size argument list and without attributes in the
arguments.

llvm-svn: 176632

11 years agoHave LoopConvert use 'auto &&' where necessary
Edwin Vane [Thu, 7 Mar 2013 16:22:05 +0000 (16:22 +0000)]
Have LoopConvert use 'auto &&' where necessary

For iterators where the dereference operator returns by value, LoopConvert
should use 'auto &&' in the range-based for loop expression.

If the dereference operator returns an rvalue reference, this is deemed too
strange and the for loop is not converted.

Moved test case from iterator_failing.cpp to iterator.cpp and added extra
tests.

Fixes PR15437.

Reviewer: gribozavr
llvm-svn: 176631

11 years agoAdding lvalue and rvalue reference type matchers
Edwin Vane [Thu, 7 Mar 2013 15:44:40 +0000 (15:44 +0000)]
Adding lvalue and rvalue reference type matchers

Updated docs and tests.

Reviewers: klimek, gribozavr

llvm-svn: 176630

11 years agoAdd 'e' to the SPIR data layout - SPIR is little endian for now.
Guy Benyei [Thu, 7 Mar 2013 13:06:10 +0000 (13:06 +0000)]
Add 'e' to the SPIR data layout - SPIR is little endian for now.
Add 32/64 bit specific target defines for SPIR.

llvm-svn: 176629

11 years agoMinor refactor of how we get compilation phases.
Matthew Curtis [Thu, 7 Mar 2013 12:32:26 +0000 (12:32 +0000)]
Minor refactor of how we get compilation phases.

There is now a single function to get the list of phases for a given
output Type.

No functionality change intended.

llvm-svn: 176628

11 years agoSwitch from autogenerating tests to using the preprocessor.
Chandler Carruth [Thu, 7 Mar 2013 10:09:47 +0000 (10:09 +0000)]
Switch from autogenerating tests to using the preprocessor.

NOTE: You may need to run 'make clean' or 'ninja -t clean' etc!!! This
      is due to really nasty bug/interactions between
      CMake/configure/make/Ninja/LIT...

This commit tries to back out the support for generating test cases as
part of the build system due to the issues I brought up in post-commit
review:

1) It adds a *lot* of complexity and fragility to the build system. See
   the number of commits required to try to get all the bots happy.
2) It isn't really necessary -- we can already run scripts to generate
   things with the RUN lines of a test.
3) It makes the tests somewhat harder to debug as they cross between
   more domains.
4) In almost all cases it isn't really needed or it can be done directly
   using the preprocessor.

I should have been more proactive reviewing this, and I'm really sorry
about the churn here. =/ To help keep track of what commits are going
where, this backs out most of the non-test-changes from these revisions:
  r176397
  r176373
  r176293
  r176184
  r175744
  r175624
  r175545
  r175544

There were several trivial or cleanup changes to the lit files or other
files. Some of these looked ok, but I didn't try to tease them apart...
Edwin, if you know what to look for, please carry on with the cleanups
there, and sorry for hosing stuff here but I'm not much of a Python
person, and so I was erring on the side of cautiously backing out the
change.

I've tried to preserve the test changes everywhere I could, but review
is appreciated here in case I missed some.

I then re-wrote the tests to use the preprocessor rather than python to
expand to the various bits of code. The nicest part of this is that now
all the files are just C++ code. They edit and behave like C++ code,
etc. RUN lines with different -D flags are used to run the same test
over multiple different configurations, and includes bracketed in
special defines are used to flesh out a collection of standard interface
stubs to test interactions between pieces. These probably aren't perfect
yet, but I think its an improvement (at least in terms of build system
complexity) and will hopefully be a useful demonstration of the
technique I prefer for these types of tests.

llvm-svn: 176627