platform/upstream/llvm.git
11 years agoRevert "[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc."
Rafael Espindola [Fri, 26 Jul 2013 22:13:57 +0000 (22:13 +0000)]
Revert "[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc."

This reverts commit r187248. It broke many bots.

llvm-svn: 187254

11 years agoFix variable name.
Owen Anderson [Fri, 26 Jul 2013 22:06:21 +0000 (22:06 +0000)]
Fix variable name.

llvm-svn: 187253

11 years agoRe-enabling the C4065 warning for MSVC builds as it no longer fires due to tablegen.
Aaron Ballman [Fri, 26 Jul 2013 22:03:03 +0000 (22:03 +0000)]
Re-enabling the C4065 warning for MSVC builds as it no longer fires due to tablegen.

llvm-svn: 187252

11 years agoUse the new boolean to StringRef function to generate the proper StringRefs.
Bill Wendling [Fri, 26 Jul 2013 21:51:11 +0000 (21:51 +0000)]
Use the new boolean to StringRef function to generate the proper StringRefs.

llvm-svn: 187251

11 years agoUse a non-c'tor for converting a boolean into a StringRef.
Bill Wendling [Fri, 26 Jul 2013 21:50:30 +0000 (21:50 +0000)]
Use a non-c'tor for converting a boolean into a StringRef.

llvm-svn: 187250

11 years agoWhen InstCombine tries to fold away (fsub x, (fneg y)) into (fadd x, y), it is
Owen Anderson [Fri, 26 Jul 2013 21:40:29 +0000 (21:40 +0000)]
When InstCombine tries to fold away (fsub x, (fneg y)) into (fadd x, y), it is
also worthwhile for it to look through FP extensions and truncations, whose
application commutes with fneg.

llvm-svn: 187249

11 years ago[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc.
Bill Schmidt [Fri, 26 Jul 2013 21:39:15 +0000 (21:39 +0000)]
[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc.

Both GCC and LLVM will implicitly define __ppc__ and __powerpc__ for
all PowerPC targets, whether 32- or 64-bit.  They will both implicitly
define __ppc64__ and __powerpc64__ for 64-bit PowerPC targets, and not
for 32-bit targets.  We cannot be sure that all other possible
compilers used to compile Clang/LLVM define both __ppc__ and
__powerpc__, for example, so it is best to check for both when relying
on either inside the Clang/LLVM code base.

This patch makes sure we always check for both variants.  In addition,
it fixes one unnecessary check in lib/Target/PowerPC/PPCJITInfo.cpp.
(At least one of __ppc__ and __powerpc__ should always be defined when
compiling for a PowerPC target, no matter which compiler is used, so
testing for them is unnecessary.)

There are some places in the compiler that check for other variants,
like __POWERPC__ and _POWER, and I have left those in place.  There is
no need to add them elsewhere.  This seems to be in Apple-specific
code, and I won't take a chance on breaking it.

There is no intended change in behavior; thus, no test cases are
added.

llvm-svn: 187248

11 years agoUse more parens to clarify assert.
Eric Christopher [Fri, 26 Jul 2013 21:16:25 +0000 (21:16 +0000)]
Use more parens to clarify assert.

llvm-svn: 187247

11 years agoFix up the BUILD_CLANG_ONLY code to work properly after r184794.
Bob Wilson [Fri, 26 Jul 2013 21:08:22 +0000 (21:08 +0000)]
Fix up the BUILD_CLANG_ONLY code to work properly after r184794.

When BUILD_CLANG_ONLY is set to YES, it is supposed to simply limit the tools
that get built.  The change in r184794 broke this feature by moving libclang
and c-index-test into PARALLEL_DIRS. Those are both supposed to be in DIRS,
because c-index-test has a build dependency on libclang and cannot be
reliably built in parallel with it.

llvm-svn: 187246

11 years agoRemove addLetterToHash, no functional change.
Eric Christopher [Fri, 26 Jul 2013 21:07:18 +0000 (21:07 +0000)]
Remove addLetterToHash, no functional change.

llvm-svn: 187245

11 years ago[mips] Implement llvm.trap intrinsic.
Akira Hatanaka [Fri, 26 Jul 2013 20:58:55 +0000 (20:58 +0000)]
[mips] Implement llvm.trap intrinsic.

Patch by Sasa Stankovic.

llvm-svn: 187244

11 years ago[PECOFF][Driver] Fix a bug that -mllvm does not take any arguments.
Rui Ueyama [Fri, 26 Jul 2013 20:54:36 +0000 (20:54 +0000)]
[PECOFF][Driver] Fix a bug that -mllvm does not take any arguments.

llvm-svn: 187243

11 years ago[mips] Fix FP conditional move instructions to have explicit FP condition code
Akira Hatanaka [Fri, 26 Jul 2013 20:51:20 +0000 (20:51 +0000)]
[mips] Fix FP conditional move instructions to have explicit FP condition code
register operands.

llvm-svn: 187242

11 years agoAdd missing 'n'.
Rafael Espindola [Fri, 26 Jul 2013 20:44:45 +0000 (20:44 +0000)]
Add missing 'n'.

Thanks to Han Finkel for noticing it.

llvm-svn: 187241

11 years agoDebug Info / EmitCallArgs: arguments may modify the debug location.
Adrian Prantl [Fri, 26 Jul 2013 20:42:57 +0000 (20:42 +0000)]
Debug Info / EmitCallArgs: arguments may modify the debug location.
Restore it after each argument is emitted. This fixes the scope info for
inlined subroutines inside of function argument expressions. (E.g.,
anything STL).

rdar://problem/12592135

llvm-svn: 187240

11 years agoOptions.td: rename CCC{Driver,Debug}Opt to Internal{Driver,Debug}Opt
Hans Wennborg [Fri, 26 Jul 2013 20:30:00 +0000 (20:30 +0000)]
Options.td: rename CCC{Driver,Debug}Opt to Internal{Driver,Debug}Opt

Also rename ccc_Group, ccc_driver_Group and ccc_Debug_Group similarly.

Differential Revision: http://llvm-reviews.chandlerc.com/D1218

llvm-svn: 187239

11 years ago[mips] Fix FP branch instructions to have explicit FP condition code register
Akira Hatanaka [Fri, 26 Jul 2013 20:13:47 +0000 (20:13 +0000)]
[mips] Fix FP branch instructions to have explicit FP condition code register
operands.

llvm-svn: 187238

11 years agoDebug Info Verifier: enable verification of DICompileUnit.
Manman Ren [Fri, 26 Jul 2013 20:04:30 +0000 (20:04 +0000)]
Debug Info Verifier: enable verification of DICompileUnit.

We used to call Verify before adding DICompileUnit to the list, and now we
remove the check and always add DICompileUnit to the list in DebugInfoFinder,
so we can verify them later on.

llvm-svn: 187237

11 years agoOptions.td: remove a_Group and L_Group.
Hans Wennborg [Fri, 26 Jul 2013 19:41:43 +0000 (19:41 +0000)]
Options.td: remove a_Group and L_Group.

They don't seems to serve any purpose.

Differential Revision: http://llvm-reviews.chandlerc.com/D1227

llvm-svn: 187236

11 years agoRevert "Added new feature for checking macro and preprocessor conditional consistency."
Rafael Espindola [Fri, 26 Jul 2013 19:23:33 +0000 (19:23 +0000)]
Revert "Added new feature for checking macro and preprocessor conditional consistency."

This reverts commit r187228. It broke some bots:
http://bb.pgr.jp/builders/cmake-clang-i686-mingw32

llvm-svn: 187235

11 years ago[mips] Increase the number of floating point condition code registers to eight.
Akira Hatanaka [Fri, 26 Jul 2013 19:03:48 +0000 (19:03 +0000)]
[mips] Increase the number of floating point condition code registers to eight.

llvm-svn: 187234

11 years ago[mips] Fix floating point branch, comparison, and conditional move instructions
Akira Hatanaka [Fri, 26 Jul 2013 19:01:56 +0000 (19:01 +0000)]
[mips] Fix floating point branch, comparison, and conditional move instructions
to have register FCC0 (the first floating point condition code register) in
their Uses/Defs list.

No intended functionality change.

llvm-svn: 187233

11 years agoAdd matcher for float literals.
Daniel Jasper [Fri, 26 Jul 2013 18:52:58 +0000 (18:52 +0000)]
Add matcher for float literals.

Patch by Chris Gray! Thanks!

llvm-svn: 187232

11 years ago[mips] Delete register print method MipsInstPrinter::printCPURegs that is not
Akira Hatanaka [Fri, 26 Jul 2013 18:50:42 +0000 (18:50 +0000)]
[mips] Delete register print method MipsInstPrinter::printCPURegs that is not
needed. The generic method printOperand will do.

No functionality change.

llvm-svn: 187231

11 years ago[libclang] Remove comma from the blacklist of characters that prevent a comment to...
Argyrios Kyrtzidis [Fri, 26 Jul 2013 18:38:12 +0000 (18:38 +0000)]
[libclang] Remove comma from the blacklist of characters that prevent a comment to be attached to a decl.

It's common to use an availability function macro at the start of a decl.
rdar://13965065

llvm-svn: 187230

11 years ago[mips] Print instructions "beq", "bne" and "or" using assembler pseudo
Akira Hatanaka [Fri, 26 Jul 2013 18:34:25 +0000 (18:34 +0000)]
[mips] Print instructions "beq", "bne" and "or" using assembler pseudo
instructions "beqz", "bnez" and "move", when possible.

beq $2, $zero, $L1 => beqz $2, $L1
bne $2, $zero, $L1 => bnez $2, $L1
or  $2, $3, $zero  => move $2, $3

llvm-svn: 187229

11 years agoAdded new feature for checking macro and preprocessor conditional consistency.
John Thompson [Fri, 26 Jul 2013 18:16:22 +0000 (18:16 +0000)]
Added new feature for checking macro and preprocessor conditional consistency.

llvm-svn: 187228

11 years agoRevert "cpp11-migrate: Write header replacements to disk"
Rafael Espindola [Fri, 26 Jul 2013 18:11:49 +0000 (18:11 +0000)]
Revert "cpp11-migrate: Write header replacements to disk"

This reverts commit 187204. It broke the freebsd bots:

http://lab.llvm.org:8011/builders/clang-X86_64-freebsd/builds/9561

llvm-svn: 187227

11 years agoRemove trailing whitespace.
Stephen Lin [Fri, 26 Jul 2013 18:09:50 +0000 (18:09 +0000)]
Remove trailing whitespace.

llvm-svn: 187226

11 years agoCorrect case of m_UIToFp to m_UIToFP to match instruction name, add m_SIToFP for...
Stephen Lin [Fri, 26 Jul 2013 17:55:00 +0000 (17:55 +0000)]
Correct case of m_UIToFp to m_UIToFP to match instruction name, add m_SIToFP for consistency.

llvm-svn: 187225

11 years agoCollapse conditional and add an assert for unhandled scope types.
Eric Christopher [Fri, 26 Jul 2013 17:45:19 +0000 (17:45 +0000)]
Collapse conditional and add an assert for unhandled scope types.

llvm-svn: 187224

11 years agoRe-add DataLayout pointer size convenience functions.
Matt Arsenault [Fri, 26 Jul 2013 17:37:20 +0000 (17:37 +0000)]
Re-add DataLayout pointer size convenience functions.

These were reverted in r167222 along with the rest
of the last different address space pointer size attempt.
These will be used in later commits.

llvm-svn: 187223

11 years agoMove this to the X86 directory, unfortunately the hashes are not
Eric Christopher [Fri, 26 Jul 2013 17:35:47 +0000 (17:35 +0000)]
Move this to the X86 directory, unfortunately the hashes are not
endian independent.

llvm-svn: 187222

11 years ago[PECOFF] Don't set IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE if "-fixed" is provided
Rui Ueyama [Fri, 26 Jul 2013 17:30:39 +0000 (17:30 +0000)]
[PECOFF] Don't set IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE if "-fixed" is provided

Based on Ron Ofir's patch.

llvm-svn: 187221

11 years ago[PECOFF] Replace magic number with llvm::COFF::DataDirectoryIndex value
Rui Ueyama [Fri, 26 Jul 2013 17:30:36 +0000 (17:30 +0000)]
[PECOFF] Replace magic number with llvm::COFF::DataDirectoryIndex value

Patch by Ron Ofir.

llvm-svn: 187220

11 years ago[PECOFF] Fixed a bug which caused DataDirectoryChunk to write to a wrong offset in...
Rui Ueyama [Fri, 26 Jul 2013 17:30:33 +0000 (17:30 +0000)]
[PECOFF] Fixed a bug which caused DataDirectoryChunk to write to a wrong offset in the file buffer

Patch by Ron Ofir.

llvm-svn: 187219

11 years agoOptions.td: Update HelpText of CCCDriverOpt
Hans Wennborg [Fri, 26 Jul 2013 17:18:08 +0000 (17:18 +0000)]
Options.td: Update HelpText of CCCDriverOpt

This should have been part of r186720.

llvm-svn: 187218

11 years agoRegenerate.
Eric Christopher [Fri, 26 Jul 2013 17:13:47 +0000 (17:13 +0000)]
Regenerate.

llvm-svn: 187217

11 years agoRemove trailing whitespace.
Rui Ueyama [Fri, 26 Jul 2013 17:08:12 +0000 (17:08 +0000)]
Remove trailing whitespace.

llvm-svn: 187216

11 years agoMake local variables to start with a lowercase character for consistency with the...
Rui Ueyama [Fri, 26 Jul 2013 17:03:03 +0000 (17:03 +0000)]
Make local variables to start with a lowercase character for consistency with the LLD coding style.

llvm-svn: 187215

11 years ago[PECOFF] Simplicy object allocation code. No functionality change.
Rui Ueyama [Fri, 26 Jul 2013 17:03:00 +0000 (17:03 +0000)]
[PECOFF] Simplicy object allocation code. No functionality change.

llvm-svn: 187214

11 years agoAdd preliminary support for hashing DIEs and breaking them into
Eric Christopher [Fri, 26 Jul 2013 17:02:41 +0000 (17:02 +0000)]
Add preliminary support for hashing DIEs and breaking them into
type units.

Initially this support is used in the computation of an ODR checker
for C++. For now we're attaching it to the DIE, but in the future
it will be attached to the type unit.

This also starts breaking out types into the separation for type
units, but without actually splitting the DIEs.

In preparation for hashing the DIEs this adds a DIEString type
that contains a StringRef with the string contained at the label.

llvm-svn: 187213

11 years agoAdd a way to get the context of any particular scope.
Eric Christopher [Fri, 26 Jul 2013 17:02:36 +0000 (17:02 +0000)]
Add a way to get the context of any particular scope.

llvm-svn: 187212

11 years ago[PECOFF] Ignore sections with IMAGE_SCN_LNK_REMOVE attribute.
Rui Ueyama [Fri, 26 Jul 2013 16:59:38 +0000 (16:59 +0000)]
[PECOFF] Ignore sections with IMAGE_SCN_LNK_REMOVE attribute.

llvm-svn: 187211

11 years agoclang-format: Add two new style options to support WebKit style.
Daniel Jasper [Fri, 26 Jul 2013 16:56:36 +0000 (16:56 +0000)]
clang-format: Add two new style options to support WebKit style.

New options:
* Break before the commas of constructor initializers and align
  the commas with the colon.
* Break before binary operators

Additionally, for styles without column limit, don't just accept
linebreaks done by the user, but instead remove 'invalid' (according
to the current style) linebreaks and add 'required' ones.

llvm-svn: 187210

11 years agoRemove dead or useless header checks from cmake and autoconf
Reid Kleckner [Fri, 26 Jul 2013 16:54:23 +0000 (16:54 +0000)]
Remove dead or useless header checks from cmake and autoconf

On Windows, this improves clean cmake configuration time on my
workstation from 1m58s to 1m32s, which is pretty significant.  There's
probably more that can be done here, but this is the low hanging fruit.

Eric volunteered to regenerate ./configure for me.

llvm-svn: 187209

11 years agoExtend the lifetime of the strings passed to posix_spawn_file_actions_addopen.
Rafael Espindola [Fri, 26 Jul 2013 16:21:31 +0000 (16:21 +0000)]
Extend the lifetime of the strings passed to posix_spawn_file_actions_addopen.

Thanks to Hal Finkel for finding the bug and for the initial patch.

llvm-svn: 187208

11 years ago[frontend] '-frewrite-includes' should not ignore headers included from command-line.
Argyrios Kyrtzidis [Fri, 26 Jul 2013 15:32:04 +0000 (15:32 +0000)]
[frontend] '-frewrite-includes' should not ignore headers included from command-line.

rdar://14556182

llvm-svn: 187207

11 years agoImprove our error handling on windows.
Rafael Espindola [Fri, 26 Jul 2013 14:55:36 +0000 (14:55 +0000)]
Improve our error handling on windows.

* Remove LLVM_ENABLE_CRT_REPORT. LLVM_DISABLE_CRASH_REPORT made it redundant.
* set Return to 1, so that we get a stack trace on failure.
* don't call _exit, so that we get a negative exit value and "not --crash"
  correctly differentiates crashes and regular errors.

This is a bit experimental since the documentation on this interface is sparse.
It doesn't bring up a dialog on my windows setup, but feel free to revert
if it causes problem for your setup (and let me know what it is so that I
can try to fix this patch).

llvm-svn: 187206

11 years agoNext batch of -disable-debug-info-verifier.
Rafael Espindola [Fri, 26 Jul 2013 14:16:30 +0000 (14:16 +0000)]
Next batch of -disable-debug-info-verifier.

These tests fail without it if pipefail is enabled.

llvm-svn: 187205

11 years agocpp11-migrate: Write header replacements to disk
Tareq A. Siraj [Fri, 26 Jul 2013 14:11:45 +0000 (14:11 +0000)]
cpp11-migrate: Write header replacements to disk

Header replacements are now written to disk in YAML format for an external tool
to merge. A unique file will be created in the same directory as the header
with all replacements that came from a source file that included the header
file. The YAML file will have:
 - Name of the file
 - Transform ID that generated the replacement
 - Offset
 - Length
 - Replacement text

Any tool reading these replacements should read them using the TransformDocument
struct.

Differential Revision: http://llvm-reviews.chandlerc.com/D1142

llvm-svn: 187204

11 years agoAdd not to a command that is expected to fail.
Rafael Espindola [Fri, 26 Jul 2013 14:10:55 +0000 (14:10 +0000)]
Add not to a command that is expected to fail.

llvm-svn: 187203

11 years agoAdd a target legalize hook for SplitVectorOperand (again)
Justin Holewinski [Fri, 26 Jul 2013 13:28:29 +0000 (13:28 +0000)]
Add a target legalize hook for SplitVectorOperand (again)

CustomLowerNode was not being called during SplitVectorOperand,
meaning custom legalization could not be used by targets.

This also adds a test case for NVPTX that depends on this custom
legalization.

Differential Revision: http://llvm-reviews.chandlerc.com/D1195

Attempt to fix the buildbots by making the X86 test I just added platform independent

llvm-svn: 187202

11 years agoRevert "Add a target legalize hook for SplitVectorOperand"
Rafael Espindola [Fri, 26 Jul 2013 13:18:16 +0000 (13:18 +0000)]
Revert "Add a target legalize hook for SplitVectorOperand"

This reverts commit 187198. It broke the bots.

The soft float test probably needs a -triple because of name differences.
On the hard float test I am getting a "roundss $1, %xmm0, %xmm0", instead of
"vroundss $1, %xmm0, %xmm0, %xmm0".

llvm-svn: 187201

11 years agoAdd missing integer min/max definitions
Aaron Watry [Fri, 26 Jul 2013 13:02:02 +0000 (13:02 +0000)]
Add missing integer min/max definitions

Found in CL 1.1 spec section 6.11.3

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 187200

11 years agoFix tests on targets that don't support thread_local
Pavel Labath [Fri, 26 Jul 2013 12:50:30 +0000 (12:50 +0000)]
Fix tests on targets that don't support thread_local

This also reverts r187197.

llvm-svn: 187199

11 years agoAdd a target legalize hook for SplitVectorOperand
Justin Holewinski [Fri, 26 Jul 2013 12:46:39 +0000 (12:46 +0000)]
Add a target legalize hook for SplitVectorOperand

CustomLowerNode was not being called during SplitVectorOperand,
meaning custom legalization could not be used by targets.

This also adds a test case for NVPTX that depends on this custom
legalization.

Differential Revision: http://llvm-reviews.chandlerc.com/D1195

llvm-svn: 187198

11 years agoAdd a triple. Should fix the windows bots.
Rafael Espindola [Fri, 26 Jul 2013 12:40:55 +0000 (12:40 +0000)]
Add a triple. Should fix the windows bots.

llvm-svn: 187197

11 years ago[analyzer] Fix FP warnings when binding a temporary to a local static variable
Pavel Labath [Fri, 26 Jul 2013 11:50:42 +0000 (11:50 +0000)]
[analyzer] Fix FP warnings when binding a temporary to a local static variable

Summary:
When binding a temporary object to a static local variable, the analyzer would
complain about a dangling reference even though the temporary's lifetime should
be extended past the end of the function. This commit tries to detect these
cases and construct them in a global memory region instead of a local one.

Reviewers: jordan_rose

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1133

llvm-svn: 187196

11 years agotest commit
Richard Osborne [Fri, 26 Jul 2013 10:19:02 +0000 (10:19 +0000)]
test commit

llvm-svn: 187195

11 years agoRework r187192, to tweak expressions to be tolerant of DOSish paths. XFAILs can be...
NAKAMURA Takumi [Fri, 26 Jul 2013 10:13:27 +0000 (10:13 +0000)]
Rework r187192, to tweak expressions to be tolerant of DOSish paths. XFAILs can be removed.

llvm-svn: 187194

11 years ago[XCore] Add TODO regarding byval structs
Richard Osborne [Fri, 26 Jul 2013 09:50:55 +0000 (09:50 +0000)]
[XCore] Add TODO regarding byval structs

llvm-svn: 187193

11 years agoclang/test/Driver/linux-header-search.cpp: Add XFAILs, for now. I'll fix them later.
NAKAMURA Takumi [Fri, 26 Jul 2013 08:28:35 +0000 (08:28 +0000)]
clang/test/Driver/linux-header-search.cpp: Add XFAILs, for now. I'll fix them later.

llvm-svn: 187192

11 years agoRe-implement the analysis of uses in mem2reg to be significantly more
Chandler Carruth [Fri, 26 Jul 2013 08:20:39 +0000 (08:20 +0000)]
Re-implement the analysis of uses in mem2reg to be significantly more
robust. It now uses an InstVisitor and worklist to actually walk the
uses of the Alloca transitively and detect the pattern which we can
directly promote: loads & stores of the whole alloca and instructions we
can completely ignore.

Also, with this new implementation teach both the predicate for testing
whether we can promote and the promotion engine itself to use the same
code so we no longer have strange divergence between the two code paths.

I've added some silly test cases to demonstrate that we can handle
slightly more degenerate code patterns now. See the below for why this
is even interesting.

Performance impact: roughly 1% regression in the performance of SROA or
ScalarRepl on a large C++-ish test case where most of the allocas are
basically ready for promotion. The reason is because of silly redundant
work that I've left FIXMEs for and which I'll address in the next
commit. I wanted to separate this commit as it changes the behavior.
Once the redundant work in removing the dead uses of the alloca is
fixed, this code appears to be faster than the old version. =]

So why is this useful? Because the previous requirement for promotion
required a *specific* visit pattern of the uses of the alloca to verify:
we *had* to look for no more than 1 intervening use. The end goal is to
have SROA automatically detect when an alloca is already promotable and
directly hand it to the mem2reg machinery rather than trying to
partition and rewrite it. This is a 25% or more performance improvement
for SROA, and a significant chunk of the delta between it and
ScalarRepl. To get there, we need to make mem2reg actually capable of
promoting allocas which *look* promotable to SROA without have SROA do
tons of work to massage the code into just the right form.

This is actually the tip of the iceberg. There are tremendous potential
savings we can realize here by de-duplicating work between mem2reg and
SROA.

llvm-svn: 187191

11 years agoRemove trailing whitespace.
Craig Topper [Fri, 26 Jul 2013 06:16:11 +0000 (06:16 +0000)]
Remove trailing whitespace.

llvm-svn: 187190

11 years agoRemove trailing whitespace.
Craig Topper [Fri, 26 Jul 2013 05:59:26 +0000 (05:59 +0000)]
Remove trailing whitespace.

llvm-svn: 187189

11 years agoAdd test cases for the various instruction alias and Intel syntax fixes that have...
Craig Topper [Fri, 26 Jul 2013 05:39:33 +0000 (05:39 +0000)]
Add test cases for the various instruction alias and Intel syntax fixes that have gone in lately.

llvm-svn: 187188

11 years agoFix more Intel syntax issues with FP instruction aliases. Test cases coming in a...
Craig Topper [Fri, 26 Jul 2013 05:37:46 +0000 (05:37 +0000)]
Fix more Intel syntax issues with FP instruction aliases. Test cases coming in a subsequent patch.

llvm-svn: 187187

11 years agoMake .bc en/decoding of AttrKind stable
Tobias Grosser [Fri, 26 Jul 2013 04:16:55 +0000 (04:16 +0000)]
Make .bc en/decoding of AttrKind stable

The bitcode representation attribute kinds are encoded into / decoded from
should be independent of the current set of LLVM attributes and their position
in the AttrKind enum. This patch explicitly encodes attributes to fixed bitcode
values.

With this patch applied, LLVM does not silently misread attributes written by
LLVM 3.3. We also enhance the decoding slightly such that an error message is
printed if an unknown AttrKind encoding was dected.

Bonus: Dropping bitcode attributes from AttrKind is now easy, as old AttrKinds
       do not need to be kept to support the Bitcode reader.
llvm-svn: 187186

11 years agoAdd an SBFrame::FindRegister() method to make it a little
Jason Molenda [Fri, 26 Jul 2013 02:08:48 +0000 (02:08 +0000)]
Add an SBFrame::FindRegister() method to make it a little
easier to retrieve a register value.

llvm-svn: 187184

11 years agoFix test for Release builds.
Eli Friedman [Fri, 26 Jul 2013 02:04:44 +0000 (02:04 +0000)]
Fix test for Release builds.

Attempt 2.  Sorry about the noise.

llvm-svn: 187183

11 years agoTake advantage of the register enums being in order to remove a couple static tables.
Craig Topper [Fri, 26 Jul 2013 02:02:47 +0000 (02:02 +0000)]
Take advantage of the register enums being in order to remove a couple static tables.

llvm-svn: 187182

11 years ago[PowerPC] Support powerpc64le as a syntax-checking target.
Bill Schmidt [Fri, 26 Jul 2013 01:36:11 +0000 (01:36 +0000)]
[PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code.  Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing.  Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The new test case variant ensures that correct built-in defines for
little-endian code are generated.

llvm-svn: 187180

11 years ago[PowerPC] Support powerpc64le as a syntax-checking target.
Bill Schmidt [Fri, 26 Jul 2013 01:35:43 +0000 (01:35 +0000)]
[PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code.  Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing.  Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The LLVM portions of this patch simply add ppc64le coverage everywhere
that ppc64 coverage currently exists.  There is nothing of any import
worth testing until such time as little-endian code generation is
implemented.  In the corresponding Clang patch, there is a new test
case variant to ensure that correct built-in defines for little-endian
code are generated.

llvm-svn: 187179

11 years agoFix test for Release builds.
Eli Friedman [Fri, 26 Jul 2013 01:21:11 +0000 (01:21 +0000)]
Fix test for Release builds.

llvm-svn: 187178

11 years ago[PECOFF] Create an atom for a symbol whose storage type is IMAGE_SYM_CLASS_LABEL.
Rui Ueyama [Fri, 26 Jul 2013 01:18:27 +0000 (01:18 +0000)]
[PECOFF] Create an atom for a symbol whose storage type is IMAGE_SYM_CLASS_LABEL.

llvm-svn: 187177

11 years agoTighten type-checking for vector attributes.
Eli Friedman [Fri, 26 Jul 2013 00:53:47 +0000 (00:53 +0000)]
Tighten type-checking for vector attributes.

Based on patch by Yunzhong Gao.

llvm-svn: 187176

11 years agoFix gcc search for cross-compiler on Ubuntu 13.04.
Eli Friedman [Fri, 26 Jul 2013 00:53:40 +0000 (00:53 +0000)]
Fix gcc search for cross-compiler on Ubuntu 13.04.

Just more craziness to find crtbegin.o etc.

Patch by Stephen Kelly.

llvm-svn: 187175

11 years agoFix GNU ObjC ABI for a message returning a struct.
Eli Friedman [Fri, 26 Jul 2013 00:53:29 +0000 (00:53 +0000)]
Fix GNU ObjC ABI for a message returning a struct.

This allows the ObjFW runtime to correctly implement message forwarding
for messages which return a struct.

Patch by Jonathan Schleifer.

llvm-svn: 187174

11 years agoRefine the fix in r187094 to only distrust the StackID comparision when we are starti...
Jim Ingham [Fri, 26 Jul 2013 00:27:57 +0000 (00:27 +0000)]
Refine the fix in r187094 to only distrust the StackID comparision when we are starting from an address with no symbols.
If we don't do that "nexti" will stop too soon when stepping past a tail call jump.

rdar://problem/14516227

llvm-svn: 187173

11 years agoPartially revert r186903.
Eli Friedman [Fri, 26 Jul 2013 00:06:45 +0000 (00:06 +0000)]
Partially revert r186903.

It turns out that Plum Hall depends on us not emitting an error on
integer literals which fit into long long, but fit into
unsigned long long.  So C99 conformance requires not conforming to C99. :)

llvm-svn: 187172

11 years agoMove friend warning into CXX11 warning group.
Eli Friedman [Fri, 26 Jul 2013 00:06:39 +0000 (00:06 +0000)]
Move friend warning into CXX11 warning group.

Also, fix the wording to reflect this.

llvm-svn: 187171

11 years agoUse env in a pecoff test so it passes with the lit shell test runner
Reid Kleckner [Thu, 25 Jul 2013 23:20:21 +0000 (23:20 +0000)]
Use env in a pecoff test so it passes with the lit shell test runner

llvm-svn: 187170

11 years agoFixed several problems with watchpoint expressions.
Sean Callanan [Thu, 25 Jul 2013 23:12:53 +0000 (23:12 +0000)]
Fixed several problems with watchpoint expressions.

- First, the watchpoint size was being cast to the
  wrong type.  This is primarily cosmetic, but
  annoying.

- Second, the options for the watchpoint command
  were not being initialized correctly, which led
  to the watchpoint size sometimes having absurdly
  large values.  This caused watchpoints to fail to
  be set in some cases.

<rdar://problem/12658775>

llvm-svn: 187169

11 years agoOptions.td: fold the NoForward flag into DriverOption
Hans Wennborg [Thu, 25 Jul 2013 23:09:00 +0000 (23:09 +0000)]
Options.td: fold the NoForward flag into DriverOption

They seemed to have the same implications, and this makes for one
less flag to worry about.

Differential Revision: http://llvm-reviews.chandlerc.com/D1219

llvm-svn: 187168

11 years agoWhen we perform dependent name lookup during template instantiation, it's not
Richard Smith [Thu, 25 Jul 2013 23:08:39 +0000 (23:08 +0000)]
When we perform dependent name lookup during template instantiation, it's not
sufficient to only consider names visible at the point of instantiation,
because that may not include names that were visible when the template was
defined. More generally, if the instantiation backtrace goes through a module
M, then every declaration visible within M should be available to the
instantiation. Any of those declarations might be part of the interface that M
intended to export to a template that it instantiates.

The fix here has two parts:

1) If we find a non-visible declaration during name lookup during template
instantiation, check whether the declaration was visible from the defining
module of all entities on the active template instantiation stack. The defining
module is not the owning module in all cases: we look at the module in which a
template was defined, not the module in which it was first instantiated.

2) Perform pending instantiations at the end of a module, not at the end of the
translation unit. This is general goodness, since it significantly cuts down
the amount of redundant work that is performed in every TU importing a module,
and also implicitly adds the module containing the point of instantiation to
the set of modules checked for declarations in a lookup within a template
instantiation.

There's a known issue here with template instantiations performed while
building a module, if additional imports are added later on. I'll fix that
in a subsequent commit.

llvm-svn: 187167

11 years agoAdd a bool->StringRef c'tor to StringRef.
Bill Wendling [Thu, 25 Jul 2013 23:06:39 +0000 (23:06 +0000)]
Add a bool->StringRef c'tor to StringRef.

llvm-svn: 187166

11 years agoAdd yaml2obj to check-lld deps, since the PECOFF tests need it
Reid Kleckner [Thu, 25 Jul 2013 23:05:13 +0000 (23:05 +0000)]
Add yaml2obj to check-lld deps, since the PECOFF tests need it

llvm-svn: 187165

11 years agoPhabricator.rst: tiny fix
Hans Wennborg [Thu, 25 Jul 2013 22:58:31 +0000 (22:58 +0000)]
Phabricator.rst: tiny fix

llvm-svn: 187164

11 years agoOptions.td: finish comment about CompileOnly_Group
Hans Wennborg [Thu, 25 Jul 2013 22:55:46 +0000 (22:55 +0000)]
Options.td: finish comment about CompileOnly_Group

llvm-svn: 187163

11 years ago[PECOFF][Driver] Add /nologo command line option.
Rui Ueyama [Thu, 25 Jul 2013 22:46:49 +0000 (22:46 +0000)]
[PECOFF][Driver] Add /nologo command line option.

llvm-svn: 187162

11 years ago[PECOFF][Driver] Split WinLinkDriver::parse for readability.
Rui Ueyama [Thu, 25 Jul 2013 22:33:08 +0000 (22:33 +0000)]
[PECOFF][Driver] Split WinLinkDriver::parse for readability.

llvm-svn: 187161

11 years ago[analyzer] Remove dead optimization for MaterializeTemporaryExpr.
Jordan Rose [Thu, 25 Jul 2013 22:32:35 +0000 (22:32 +0000)]
[analyzer] Remove dead optimization for MaterializeTemporaryExpr.

Previously, we tried to avoid creating new temporary object regions if
the value to be materialized itself came from a temporary object region.
However, once we became more strict about lvalues vs. rvalues (months
ago), this optimization became dead code, because the input to this
function will always be an rvalue (i.e. a symbolic value or compound
value rather than a region, at least for structs).

This would be a nice optimization to keep, but removing it makes it
simpler to reason about temporary regions.

llvm-svn: 187160

11 years agoUsing a different loop induction variable than the enclosing scope. No functional...
Aaron Ballman [Thu, 25 Jul 2013 22:09:31 +0000 (22:09 +0000)]
Using a different loop induction variable than the enclosing scope.  No functional changes intended.

llvm-svn: 187159

11 years agoPPC32 va_list is an actual structure so va_copy needs to copy the whole
Roman Divacky [Thu, 25 Jul 2013 21:36:47 +0000 (21:36 +0000)]
PPC32 va_list is an actual structure so va_copy needs to copy the whole
structure not just a pointer. This implements that and thus fixes va_copy
on PPC32. Fixes #15286. Both bug and patch by Florian Zeitz!

llvm-svn: 187158

11 years agoDebug Info: update comments and add a FIXME.
Manman Ren [Thu, 25 Jul 2013 21:19:31 +0000 (21:19 +0000)]
Debug Info: update comments and add a FIXME.

llvm-svn: 187157

11 years agoDon't forward all assembler arguments untouched to -cc1as
David Blaikie [Thu, 25 Jul 2013 21:19:01 +0000 (21:19 +0000)]
Don't forward all assembler arguments untouched to -cc1as

Use the same filtering for assembly arguments to -cc1as as we do for
-cc1, this allows a consistent (& more useful) diagnostic experience for
users (rather than getting an error from -cc1as (which a user shouldn't
really be thinking about) about --foo, they get an error from clang
about --foo in -Wa,)

I'm sort of surprised by the separation of -cc1as & the separate
argument handling, etc, but at least this removes a little bit of the
duplication.

llvm-svn: 187156

11 years agotests: Build test code on FreeBSD the same way as on Linux
Ed Maste [Thu, 25 Jul 2013 21:02:34 +0000 (21:02 +0000)]
tests: Build test code on FreeBSD the same way as on Linux

llvm-svn: 187155

11 years agoRemove dead code from the makefile build system.
Rafael Espindola [Thu, 25 Jul 2013 20:25:31 +0000 (20:25 +0000)]
Remove dead code from the makefile build system.

Back in r140220 we removed the autoconf code that would set LLVMCC_OPTION
since it was only used by the test-suite. This patch now removes code
that would only be used if LLVMCC_OPTION was set.

llvm-svn: 187154

11 years agocpp11-migrate: Tweak lit tests to avoid false negatives
Edwin Vane [Thu, 25 Jul 2013 20:20:20 +0000 (20:20 +0000)]
cpp11-migrate: Tweak lit tests to avoid false negatives

Recent failures on a freebsd buildbot indicated a weakness in the
Reformatting.cpp lit test. Tweaking the test to avoid false negatives and
hopefully make the buildbot happy.

llvm-svn: 187153