platform/upstream/llvm.git
11 years agoFix r165005: The lexical DeclContext is not the right place to make a decision about...
Axel Naumann [Thu, 4 Oct 2012 07:34:43 +0000 (07:34 +0000)]
Fix r165005: The lexical DeclContext is not the right place to make a decision about whether we need to call tryAddTopLevelDecl or not. That call should be made when the DeclContext's redeclaration context is the translation unit.

llvm-svn: 165215

11 years ago[asan] properly report mmap failure
Kostya Serebryany [Thu, 4 Oct 2012 07:21:09 +0000 (07:21 +0000)]
[asan] properly report mmap failure

llvm-svn: 165214

11 years agoUse method to query if there are attributes.
Bill Wendling [Thu, 4 Oct 2012 07:19:46 +0000 (07:19 +0000)]
Use method to query if there are attributes.

llvm-svn: 165213

11 years agoAdd method to query for NoCapture attribute.
Bill Wendling [Thu, 4 Oct 2012 07:18:12 +0000 (07:18 +0000)]
Add method to query for NoCapture attribute.

llvm-svn: 165212

11 years agoUse method to query for NoAlias attribute.
Bill Wendling [Thu, 4 Oct 2012 07:17:46 +0000 (07:17 +0000)]
Use method to query for NoAlias attribute.

llvm-svn: 165211

11 years agoUse attribute query methods.
Bill Wendling [Thu, 4 Oct 2012 07:08:30 +0000 (07:08 +0000)]
Use attribute query methods.

llvm-svn: 165210

11 years agoUse method to query for attributes.
Bill Wendling [Thu, 4 Oct 2012 06:58:52 +0000 (06:58 +0000)]
Use method to query for attributes.

llvm-svn: 165209

11 years agoAdd method to query for 'NoAlias' attribute on call/invoke instructions.
Bill Wendling [Thu, 4 Oct 2012 06:52:09 +0000 (06:52 +0000)]
Add method to query for 'NoAlias' attribute on call/invoke instructions.

llvm-svn: 165208

11 years agoUse method to query for attributes.
Bill Wendling [Thu, 4 Oct 2012 06:49:41 +0000 (06:49 +0000)]
Use method to query for attributes.

llvm-svn: 165207

11 years agoQuery for attributes via the correct method call.
Bill Wendling [Thu, 4 Oct 2012 06:48:57 +0000 (06:48 +0000)]
Query for attributes via the correct method call.

llvm-svn: 165206

11 years agoUse new accessor methods to query for attributes.
Bill Wendling [Thu, 4 Oct 2012 06:43:21 +0000 (06:43 +0000)]
Use new accessor methods to query for attributes.

llvm-svn: 165205

11 years ago[tsan] add 3 internal flags for fine-grain control of what is instrumented and what...
Kostya Serebryany [Thu, 4 Oct 2012 05:28:50 +0000 (05:28 +0000)]
[tsan] add 3 internal flags for fine-grain control of what is instrumented and what is not.

llvm-svn: 165204

11 years agoRemove template from function that is only used with one type after r165092.
Craig Topper [Thu, 4 Oct 2012 05:18:31 +0000 (05:18 +0000)]
Remove template from function that is only used with one type after r165092.

llvm-svn: 165203

11 years agoAdd missing comment for mangling.
Nick Lewycky [Thu, 4 Oct 2012 04:58:17 +0000 (04:58 +0000)]
Add missing comment for mangling.

llvm-svn: 165202

11 years agoFix reg mask slot test, and preserve LiveIntervals and VirtRegMap in the PBQP
Lang Hames [Thu, 4 Oct 2012 04:50:53 +0000 (04:50 +0000)]
Fix reg mask slot test, and preserve LiveIntervals and VirtRegMap in the PBQP
allocator. Fixes PR13945.

llvm-svn: 165201

11 years agodocs: Fix typo on front page
Sean Silva [Thu, 4 Oct 2012 04:41:27 +0000 (04:41 +0000)]
docs: Fix typo on front page

llvm-svn: 165200

11 years agoImplement methods that enable expansion of load immediate
Jack Carter [Thu, 4 Oct 2012 04:03:53 +0000 (04:03 +0000)]
Implement methods that enable expansion of load immediate
macro instruction (li) in the assembler.

We have identified three possible expansions depending on
the size of immediate operand:
  1) for 0 ≤ j ≤ 65535.
     li d,j =>
     ori d,$zero,j

  2) for −32768 ≤ j < 0.
     li d,j =>
     addiu d,$zero,j

  3) for any other value of j that is representable as a 32-bit integer.
     li d,j =>
     lui d,hi16(j)
     ori d,d,lo16(j)

All of the above have been implemented in ths patch.

Contributer: Vladimir Medic
llvm-svn: 165199

11 years agodocs: Sphinxify GoldPlugin document.
Sean Silva [Thu, 4 Oct 2012 03:56:23 +0000 (03:56 +0000)]
docs: Sphinxify GoldPlugin document.

llvm-svn: 165198

11 years agoFail early with a clear assert if an operation with multiple uses somehow ends
Lang Hames [Thu, 4 Oct 2012 03:23:25 +0000 (03:23 +0000)]
Fail early with a clear assert if an operation with multiple uses somehow ends
up being contracted during codegen.

llvm-svn: 165197

11 years agoTest file-scoped FP_CONTRACT pragma.
Lang Hames [Thu, 4 Oct 2012 03:07:37 +0000 (03:07 +0000)]
Test file-scoped FP_CONTRACT pragma.

llvm-svn: 165196

11 years agoPermanently end the whole "pragma got handled by the parser too early"
Eli Friedman [Thu, 4 Oct 2012 02:36:51 +0000 (02:36 +0000)]
Permanently end the whole "pragma got handled by the parser too early"
mess by handling all pragmas which the parser touches uniformly.
<rdar://problem/12248901>, etc.

llvm-svn: 165195

11 years agoThis patch is a partial implementation of mips .set assembler directive. Directive...
Jack Carter [Thu, 4 Oct 2012 02:29:46 +0000 (02:29 +0000)]
This patch is a partial implementation of mips .set assembler directive. Directive is defined as follows:
.set option
The patch implements following options

    at - lets the assembler use the $at register for macros,
         but generates warnings if the source program uses $at

    noat - let source programs use $at without issuingwarnings.

    noreorder - prevents the assembler from reordering machine
                language instructions.
    nomacro - causes the assembler to print a warning whenever
              an assembler operation generates more than one
              machine language instruction.
    macro - lets the assembler generate multiple machine instructions
            from a single assembler instruction
    reorder - lets the assembler reorder machine language
               instructions to improve performance

The above variants are parsed and their boolean values set or unset.
The code to actually use them will come later.

Following options are not implemented yet:

nomips16
nomicromips
move
nomove

Contributer: Vladimir Medic
llvm-svn: 165194

11 years agoPatch submitted by Dan Malea -- I introduced a dependency between
Jason Molenda [Thu, 4 Oct 2012 02:16:06 +0000 (02:16 +0000)]
Patch submitted by Dan Malea -- I introduced a dependency between
ProcessGDBRemote and DynamicLoaderDarwinKernel and a patch was needed
to get this building on Linux.  Thanks!

llvm-svn: 165193

11 years agoRemove a few debug printf's that were left in ProcessKDP.
Jason Molenda [Thu, 4 Oct 2012 02:06:30 +0000 (02:06 +0000)]
Remove a few debug printf's that were left in ProcessKDP.

llvm-svn: 165192

11 years agoI'm getting these errors with r165159:
Bill Wendling [Thu, 4 Oct 2012 01:44:41 +0000 (01:44 +0000)]
I'm getting these errors with r165159:

/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:22:2: error: instruction requires: VFP2
 vmov d6, r0, r1
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:23:2: error: instruction requires: VFP2
 vmov d7, r2, r3
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:24:2: error: instruction requires: VFP2
 vcmp.f64 d6, d7
 ^
/Users/void/llvm/llvm-tot.src/projects/compiler-rt/lib/arm/eqdf2vfp.S:25:2: error: instruction requires: VFP2
 vmrs apsr_nzcv, fpscr
 ^

llvm-svn: 165191

11 years agotblgen: Whitespace and 80-col cleanup.
Sean Silva [Thu, 4 Oct 2012 00:54:27 +0000 (00:54 +0000)]
tblgen: Whitespace and 80-col cleanup.

llvm-svn: 165190

11 years agoMake sure 'prefix-clang++' is aliased to 'prefix-clang', not 'clang'.
Jordan Rose [Thu, 4 Oct 2012 00:47:59 +0000 (00:47 +0000)]
Make sure 'prefix-clang++' is aliased to 'prefix-clang', not 'clang'.

When aliasing tools, rather than using the base TOOLEXENAME, we should
instead use the built tool's basename (for 'make') or the installed
tool's basename (for 'make install').

This should not cause any changes for anyone building unprefixed 'clang'
and 'clang++' tools.

Patch by Rick Foos!

llvm-svn: 165189

11 years agoEnable -schedmodel, but prefer itineraries until we have more benchmark data.
Andrew Trick [Thu, 4 Oct 2012 00:24:34 +0000 (00:24 +0000)]
Enable -schedmodel, but prefer itineraries until we have more benchmark data.

llvm-svn: 165188

11 years agoFix PR13967.
Jakub Staszak [Wed, 3 Oct 2012 23:59:47 +0000 (23:59 +0000)]
Fix PR13967.

llvm-svn: 165187

11 years ago<rdar://problem/12099592> Adding back a bunch of code-running summaries
Enrico Granata [Wed, 3 Oct 2012 23:53:45 +0000 (23:53 +0000)]
<rdar://problem/12099592> Adding back a bunch of code-running summaries

llvm-svn: 165186

11 years agoAdd an explicit -object_path_lto flag during linking with a uniquified temporary
Bill Wendling [Wed, 3 Oct 2012 23:52:10 +0000 (23:52 +0000)]
Add an explicit -object_path_lto flag during linking with a uniquified temporary
file name if building Apple-style.

llvm-svn: 165185

11 years agoAdd an explicit -object_path_lto flag during linking with a uniquified temporary
Bill Wendling [Wed, 3 Oct 2012 23:49:57 +0000 (23:49 +0000)]
Add an explicit -object_path_lto flag during linking with a uniquified temporary
file name if building Apple-style.

llvm-svn: 165184

11 years agoClean up tailing whitespaces
Michael Liao [Wed, 3 Oct 2012 23:43:52 +0000 (23:43 +0000)]
Clean up tailing whitespaces

llvm-svn: 165182

11 years agoAdded missing break in StockSectionChunk constructor.
Hemant Kulkarni [Wed, 3 Oct 2012 23:27:33 +0000 (23:27 +0000)]
Added missing break in StockSectionChunk constructor.
Removed architecture dependent .sbss section creation.

Updated test case to show the change in section types and removal of a sbss section.

llvm-svn: 165181

11 years agoAdded instregex support to TableGen subtarget emitter.
Andrew Trick [Wed, 3 Oct 2012 23:06:32 +0000 (23:06 +0000)]
Added instregex support to TableGen subtarget emitter.

This allows the processor-specific machine model to override selected
base opcodes without any fanciness.
e.g. InstRW<[CoreXWriteVANDP], (instregex "VANDP")>.

llvm-svn: 165180

11 years agoTableGen subtarget emitter, nearly first class support for SchedAlias.
Andrew Trick [Wed, 3 Oct 2012 23:06:28 +0000 (23:06 +0000)]
TableGen subtarget emitter, nearly first class support for SchedAlias.

A processor can now arbitrarily alias one SchedWrite onto
another. Only the SchedAlias definition need be within the processor
model. The aliased SchedWrite may be a SchedVariant, WriteSequence, or
transitively refer to another alias.

llvm-svn: 165179

11 years agoCleanup TableGen subtarget emitter.
Andrew Trick [Wed, 3 Oct 2012 23:06:25 +0000 (23:06 +0000)]
Cleanup TableGen subtarget emitter.

llvm-svn: 165178

11 years agouse ';' instead of '-' in the note part of my last patch.
Fariborz Jahanian [Wed, 3 Oct 2012 22:39:32 +0000 (22:39 +0000)]
use ';' instead of '-' in the note part of my last patch.

llvm-svn: 165177

11 years agoDon't turn on the debugserver log by default.
Jim Ingham [Wed, 3 Oct 2012 22:31:30 +0000 (22:31 +0000)]
Don't turn on the debugserver log by default.

llvm-svn: 165176

11 years agoUpdate test case for r165174.
Chad Rosier [Wed, 3 Oct 2012 22:18:51 +0000 (22:18 +0000)]
Update test case for r165174.

llvm-svn: 165175

11 years ago[ms-inline asm] Default to the 'm' constraint. This matches the behavior of the
Chad Rosier [Wed, 3 Oct 2012 22:18:38 +0000 (22:18 +0000)]
[ms-inline asm] Default to the 'm' constraint.  This matches the behavior of the
MSVC compiler.

llvm-svn: 165174

11 years ago[ms-inline asm] Add support in the X86AsmPrinter for printing memory references
Chad Rosier [Wed, 3 Oct 2012 22:06:44 +0000 (22:06 +0000)]
[ms-inline asm] Add support in the X86AsmPrinter for printing memory references
in the Intel syntax.

The MC layer supports emitting in the Intel syntax, but this would require the
inline assembly MachineInstr to be lowered to an MCInst before emission.  This
is potential future work, but for now emitting directly from the MachineInstr
suffices.

llvm-svn: 165173

11 years agoThis patch moves from using a hard coded number (4)
Jack Carter [Wed, 3 Oct 2012 21:58:54 +0000 (21:58 +0000)]
This patch moves from using a hard coded number (4)
for the number of bytes in a particular instruction
to using
   const MCInstrDesc &Desc = MCII.get(TmpInst.getOpcode());
   Desc.getSize()

This is necessary with the advent of 16 bit instructions with
mips16 and micromips. It is also puts Mips in compliance with
the other targets for getting instruction size.

llvm-svn: 165171

11 years ago * Return correct size and alignment for common symbols.
Sid Manning [Wed, 3 Oct 2012 21:46:48 +0000 (21:46 +0000)]
  * Return correct size and alignment for common symbols.

llvm-svn: 165170

11 years ago<rdar://problem/12408181> Fixing a bug where we would try to look for types in a...
Enrico Granata [Wed, 3 Oct 2012 21:31:35 +0000 (21:31 +0000)]
<rdar://problem/12408181> Fixing a bug where we would try to look for types in a module, and then fail to look for them anywhere else because the same SymbolContext was being passed everywhere

llvm-svn: 165169

11 years agotblgen: Remove last traces of old TableGenMain API.
Sean Silva [Wed, 3 Oct 2012 21:31:08 +0000 (21:31 +0000)]
tblgen: Remove last traces of old TableGenMain API.

llvm-svn: 165168

11 years agotblgen: Migrate clang-tblgen to new TableGenMain API.
Sean Silva [Wed, 3 Oct 2012 21:29:30 +0000 (21:29 +0000)]
tblgen: Migrate clang-tblgen to new TableGenMain API.

llvm-svn: 165167

11 years agotblgen: Migrate llvm-tblgen to new TableGenMain API.
Sean Silva [Wed, 3 Oct 2012 21:29:19 +0000 (21:29 +0000)]
tblgen: Migrate llvm-tblgen to new TableGenMain API.

llvm-svn: 165166

11 years agotblgen: Put new TableGenMain API in place.
Sean Silva [Wed, 3 Oct 2012 21:29:18 +0000 (21:29 +0000)]
tblgen: Put new TableGenMain API in place.

In order to avoid rev-lock with Clang when moving to the new API, also
preserve the current API temporarily and insert a shim to implement the
new API in terms of the old.

llvm-svn: 165165

11 years agoAdd function to return return attributes.
Bill Wendling [Wed, 3 Oct 2012 21:19:35 +0000 (21:19 +0000)]
Add function to return return attributes.

llvm-svn: 165164

11 years agoUpdate to use the predicate methods to query if an attribute exists.
Bill Wendling [Wed, 3 Oct 2012 21:17:09 +0000 (21:17 +0000)]
Update to use the predicate methods to query if an attribute exists.

llvm-svn: 165163

11 years agoRemove the directory that these are already in.
Bill Wendling [Wed, 3 Oct 2012 21:08:21 +0000 (21:08 +0000)]
Remove the directory that these are already in.

llvm-svn: 165162

11 years ago[libclang] When indexing, invoke the importedASTFile for PCH files as well.
Argyrios Kyrtzidis [Wed, 3 Oct 2012 21:05:51 +0000 (21:05 +0000)]
[libclang] When indexing, invoke the importedASTFile for PCH files as well.

llvm-svn: 165161

11 years ago[libclang] Simplify indexing of module imports by handling implicit
Argyrios Kyrtzidis [Wed, 3 Oct 2012 21:05:44 +0000 (21:05 +0000)]
[libclang] Simplify indexing of module imports by handling implicit
imports via ImportDecls.

llvm-svn: 165160

11 years agoBack out my temporary workaround for Apple buildbots.
Bob Wilson [Wed, 3 Oct 2012 21:03:42 +0000 (21:03 +0000)]
Back out my temporary workaround for Apple buildbots.
--- Reverse-merging r164909 into '.':
U    make/platform/clang_darwin.mk

llvm-svn: 165159

11 years agoPR14004: Fix typo in documentation.
Richard Smith [Wed, 3 Oct 2012 21:02:25 +0000 (21:02 +0000)]
PR14004: Fix typo in documentation.

llvm-svn: 165158

11 years agoFix invalid reads by memcmp.
Benjamin Kramer [Wed, 3 Oct 2012 20:58:09 +0000 (20:58 +0000)]
Fix invalid reads by memcmp.

Str may be smaller than Start->Name here. Use strncmp to avoid scanning past the
end. Found by valgrind.

llvm-svn: 165157

11 years agoAlways initialize FPContractable.
Benjamin Kramer [Wed, 3 Oct 2012 20:58:04 +0000 (20:58 +0000)]
Always initialize FPContractable.

false is used as a baseline here, we may want to allow contraction in some of
the cases.  Found by valgrind.

llvm-svn: 165156

11 years agoHolger Arnold: Correct the use and testing of __GNUC__ and __GNUC_MINOR__ in <__config>.
Howard Hinnant [Wed, 3 Oct 2012 20:48:05 +0000 (20:48 +0000)]
Holger Arnold:  Correct the use and testing of __GNUC__ and __GNUC_MINOR__ in <__config>.

llvm-svn: 165151

11 years ago[Options] Store the owning OptTable in Option so it can construct Group and Alias.
Michael J. Spencer [Wed, 3 Oct 2012 19:58:10 +0000 (19:58 +0000)]
[Options] Store the owning OptTable in Option so it can construct Group and Alias.

llvm-svn: 165150

11 years agoRemove useless parameter "WantFile" from Driver::GetProgramPath().
Simon Atanasyan [Wed, 3 Oct 2012 19:52:37 +0000 (19:52 +0000)]
Remove useless parameter "WantFile" from Driver::GetProgramPath().
This parameter is useless because nowhere used explicitly and always
gets its default value - "false".

The patch reviewed by Rafael Espindola.

llvm-svn: 165149

11 years agoFix a cycle in the DAG. In this code we replace multiple loads with a single load and
Nadav Rotem [Wed, 3 Oct 2012 19:30:31 +0000 (19:30 +0000)]
Fix a cycle in the DAG. In this code we replace multiple loads with a single load and
multiple stores with a single load. We create the wide loads and stores (and their chains)
before we remove the scalar loads and stores and fix the DAG chain. We attempted to merge
loads with a different chain. When that happened, the assumption that it is safe to RAUW
broke and a cycle was introduced.

llvm-svn: 165148

11 years agoUse unsigned long long instead of uin64_t for OS where that matters.
Nick Kledzik [Wed, 3 Oct 2012 19:27:25 +0000 (19:27 +0000)]
Use unsigned long long instead of uin64_t for OS where that matters.

llvm-svn: 165147

11 years agoAn API in Clang got renamed; fixing LLDB to match.
Sean Callanan [Wed, 3 Oct 2012 19:23:27 +0000 (19:23 +0000)]
An API in Clang got renamed; fixing LLDB to match.

llvm-svn: 165144

11 years agoThis patch enables general varargs support for the 64-bit PPC SVR4 ABI.
Bill Schmidt [Wed, 3 Oct 2012 19:18:57 +0000 (19:18 +0000)]
This patch enables general varargs support for the 64-bit PPC SVR4 ABI.

Most of the pieces for this were already in place, but a proper EmitVAArg
is needed for aggregates and complex numbers to be handled.  Although the
va_list for 64-bit PowerPC SVR4 consists of GPRs 3 through 10 together with
the overflow portion of the parameter save area, we can treat va_list as
pointing to contiguous memory for all parameters, since the back end forces
the parameter GPRs to memory for varargs functions.

There is no need at this time to model parameters and return values beyond
what the DefaultABIInfo provides.

llvm-svn: 165143

11 years agoFix a typo in my last patch reported by Erik Schwiebert.
Fariborz Jahanian [Wed, 3 Oct 2012 19:05:41 +0000 (19:05 +0000)]
Fix a typo in my last patch reported by Erik Schwiebert.

llvm-svn: 165142

11 years agoTypos.
Chad Rosier [Wed, 3 Oct 2012 19:00:20 +0000 (19:00 +0000)]
Typos.

llvm-svn: 165141

11 years agoDon't call getAsUnsignedInteger directly, it fails to compile if uint64_t is not...
Benjamin Kramer [Wed, 3 Oct 2012 18:54:36 +0000 (18:54 +0000)]
Don't call getAsUnsignedInteger directly, it fails to compile if uint64_t is not "unsigned long long".

while there add more test cases.

llvm-svn: 165140

11 years agoRemove ASTReader::needPendingInstantiation(), introduced in r164993,
Douglas Gregor [Wed, 3 Oct 2012 18:38:43 +0000 (18:38 +0000)]
Remove ASTReader::needPendingInstantiation(), introduced in r164993,
which is neither correct nor necessary. The use of this routine was
eliminated by r165137.

llvm-svn: 165139

11 years agoAdd some FIXMEs to the ASTReader code
Douglas Gregor [Wed, 3 Oct 2012 18:36:10 +0000 (18:36 +0000)]
Add some FIXMEs to the ASTReader code

llvm-svn: 165138

11 years agoRevert most of the functionality in r165001. Instead, make sure that
Douglas Gregor [Wed, 3 Oct 2012 18:34:48 +0000 (18:34 +0000)]
Revert most of the functionality in r165001. Instead, make sure that
the ASTReader doesn't attach a body to a function that is already
defined elsewhere.

llvm-svn: 165137

11 years agoAdd getAsUnsignedInteger test case that checks that known bad values are rejected
Nick Kledzik [Wed, 3 Oct 2012 18:15:27 +0000 (18:15 +0000)]
Add getAsUnsignedInteger test case that checks that known bad values are rejected

llvm-svn: 165136

11 years agoNo need to call functions which do the same thing as the default.
Bill Wendling [Wed, 3 Oct 2012 18:10:49 +0000 (18:10 +0000)]
No need to call functions which do the same thing as the default.

llvm-svn: 165135

11 years agoRemove assert that's too restrictive.
Bill Wendling [Wed, 3 Oct 2012 18:08:57 +0000 (18:08 +0000)]
Remove assert that's too restrictive.

llvm-svn: 165134

11 years agoobjective-C arc: Warn under arc about a use of an ivar inside a block
Fariborz Jahanian [Wed, 3 Oct 2012 17:55:29 +0000 (17:55 +0000)]
objective-C arc: Warn under arc about a use of an ivar inside a block
that doesn't have a 'self' as this implicitly captures 'self' and could
create retain cycles. Provide fixit. // rdar://11194874

llvm-svn: 165133

11 years agoAdd methods which query for the specific attribute instead of using the
Bill Wendling [Wed, 3 Oct 2012 17:54:26 +0000 (17:54 +0000)]
Add methods which query for the specific attribute instead of using the
enums. This allows for better encapsulation of the Attributes class.

llvm-svn: 165132

11 years agoImplement Adnroid MIPS toolchain support:
Simon Atanasyan [Wed, 3 Oct 2012 17:46:38 +0000 (17:46 +0000)]
Implement Adnroid MIPS toolchain support:
1. Add mipsel-linux-android to the list of valid MIPS target triples.
2. Add <gcc install path>/mips-r2 to the list of toolchain specific path
   prefixes if target is mipsel-linux-android.

The patch reviewed by Logan Chien.

llvm-svn: 165131

11 years agoFix failure of newly added test, by using %clang instead of %clang_cc1
Preston Gurd [Wed, 3 Oct 2012 16:52:40 +0000 (16:52 +0000)]
Fix failure of newly added test, by using %clang instead of %clang_cc1
and by specifying a target.

llvm-svn: 165130

11 years agoAdds a test to verify that Clang does the optimization to use a
Preston Gurd [Wed, 3 Oct 2012 16:37:56 +0000 (16:37 +0000)]
Adds a test to verify that Clang does the optimization to use a
fast div/rem instruction (for Intel Atom).

Test case for llvm commit 165126.

Patch by Tyler Nowicki.

llvm-svn: 165129

11 years agoImplement .rel relocation for R_ARM_ABS32 in MCJIT.
Tim Northover [Wed, 3 Oct 2012 16:29:42 +0000 (16:29 +0000)]
Implement .rel relocation for R_ARM_ABS32 in MCJIT.

Patch by Amara Emerson.

llvm-svn: 165128

11 years agoThis Patch corrects a problem whereby the optimization to use a faster divide
Preston Gurd [Wed, 3 Oct 2012 16:11:44 +0000 (16:11 +0000)]
This Patch corrects a problem whereby the optimization to use a faster divide
instruction (for Intel Atom) was not being done by Clang, because
the type context used by Clang is not the default context.

It fixes the problem by getting the global context types for each div/rem
instruction in order to compare them against the types in the BypassTypeMap.

Tests for this will be done as a separate patch to Clang.

Patch by Tyler Nowicki.

llvm-svn: 165126

11 years agoA DAGCombine optimization for mergeing consecutive stores to memory. The optimization
Nadav Rotem [Wed, 3 Oct 2012 16:11:15 +0000 (16:11 +0000)]
A DAGCombine optimization for mergeing consecutive stores to memory. The optimization
is not profitable in many cases because modern processors perform multiple stores
in parallel and merging stores prior to merging requires extra work. We handle two main cases:

1. Store of multiple consecutive constants:
  q->a = 3;
  q->4 = 5;
In this case we store a single legal wide integer.

2. Store of multiple consecutive loads:
  int a = p->a;
  int b = p->b;
  q->a = a;
  q->b = b;
In this case we load/store either ilegal vector registers or legal wide integer registers.

llvm-svn: 165125

11 years agoRevert "InlineObjCInstanceMethod.m: Remove lines introduced in r165079."
Jordan Rose [Wed, 3 Oct 2012 16:00:32 +0000 (16:00 +0000)]
Revert "InlineObjCInstanceMethod.m: Remove lines introduced in r165079."

...and fix the run line so that the expected warnings are the same on
all platforms.

This reverts r165088 / d09074f0ca06626914108f1c0d4e70adeb851e01.

llvm-svn: 165124

11 years agoSet up MCSchedModel after detecting the CPU type in X86SubTarget.
Preston Gurd [Wed, 3 Oct 2012 15:55:13 +0000 (15:55 +0000)]
Set up MCSchedModel after detecting the CPU type in X86SubTarget.

Corrects a problem whereby MCSchedModel was not being set up when
the CPU type was auto-detected.

Patch by Andy Zhang.

llvm-svn: 165122

11 years agoSet ASAN_NEEDS_SEGV=0 on Android only.
Alexander Potapenko [Wed, 3 Oct 2012 15:09:17 +0000 (15:09 +0000)]
Set ASAN_NEEDS_SEGV=0 on Android only.

llvm-svn: 165120

11 years agoclang-check: Add clangRewriteCore.a to the Makefile build to make it link again.
Benjamin Kramer [Wed, 3 Oct 2012 14:35:38 +0000 (14:35 +0000)]
clang-check: Add clangRewriteCore.a to the Makefile build to make it link again.

llvm-svn: 165119

11 years agoMatching block names with FileCheck requires asserts.
Benjamin Kramer [Wed, 3 Oct 2012 14:21:33 +0000 (14:21 +0000)]
Matching block names with FileCheck requires asserts.

llvm-svn: 165118

11 years agoCodeGen: Fix a silly typo when emitting subs of block addresses.
Benjamin Kramer [Wed, 3 Oct 2012 14:15:39 +0000 (14:15 +0000)]
CodeGen: Fix a silly typo when emitting subs of block addresses.

Part of PR14005.

llvm-svn: 165117

11 years agoWhen mangling an APSInt with the ms abi, make sure to look at all nibbles.
Nico Weber [Wed, 3 Oct 2012 13:39:49 +0000 (13:39 +0000)]
When mangling an APSInt with the ms abi, make sure to look at all nibbles.

Currently, it's ignored if the number of set bits isn't divisible by 4.

llvm-svn: 165116

11 years agoAs opposed to the clang-fixit tool described on
Daniel Jasper [Wed, 3 Oct 2012 13:28:43 +0000 (13:28 +0000)]
As opposed to the clang-fixit tool described on
http://clang.llvm.org/docs/ClangTools.html, this adds -fixit option to
clang-check. Thus, clang-check can become a general-purpose tool to run
clang capitalizing on the info stored in a compilation database.

Review: http://llvm-reviews.chandlerc.com/D51
llvm-svn: 165110

11 years agotsan: update the test for new atomic enums
Dmitry Vyukov [Wed, 3 Oct 2012 13:19:20 +0000 (13:19 +0000)]
tsan: update the test for new atomic enums

llvm-svn: 165109

11 years agotsan: update the test for new atomic enums
Dmitry Vyukov [Wed, 3 Oct 2012 13:13:54 +0000 (13:13 +0000)]
tsan: update the test for new atomic enums

llvm-svn: 165108

11 years agotsan: prepare for migration to new memory_order enum values (ABI compatible)
Dmitry Vyukov [Wed, 3 Oct 2012 13:00:57 +0000 (13:00 +0000)]
tsan: prepare for migration to new memory_order enum values (ABI compatible)

llvm-svn: 165107

11 years agotsan: prepare for migration to new memory_order enum values (ABI compatible)
Dmitry Vyukov [Wed, 3 Oct 2012 13:00:13 +0000 (13:00 +0000)]
tsan: prepare for migration to new memory_order enum values (ABI compatible)

llvm-svn: 165106

11 years agoFix typo in comments.
Logan Chien [Wed, 3 Oct 2012 09:26:43 +0000 (09:26 +0000)]
Fix typo in comments.

llvm-svn: 165105

11 years agoComment to XML conversion: escape XML special chars correctly; use correct
Dmitri Gribenko [Wed, 3 Oct 2012 09:04:56 +0000 (09:04 +0000)]
Comment to XML conversion: escape XML special chars correctly; use correct
regex for version tuples.

llvm-svn: 165104

11 years agoThe top-level clang Makefile is #included into other Makefiles. (sigh) So we
Bill Wendling [Wed, 3 Oct 2012 08:39:19 +0000 (08:39 +0000)]
The top-level clang Makefile is #included into other Makefiles. (sigh) So we
can't have the logic here to add in the 'tools/{driver,libclang}' directories,
because they will be added in for ALL Makefiles which #include the top-level
one. Place the logic into the 'tools' Makefile.

llvm-svn: 165103

11 years agoFixed a bug in the ExecutionDependencyFix pass that caused dependencies to not propag...
Silviu Baranga [Wed, 3 Oct 2012 08:29:36 +0000 (08:29 +0000)]
Fixed a bug in the ExecutionDependencyFix pass that caused dependencies to not propagate through implicit defs.

llvm-svn: 165102

11 years agoFix an issue where we failed to adjust the alignment constraint on
Chandler Carruth [Wed, 3 Oct 2012 08:26:28 +0000 (08:26 +0000)]
Fix an issue where we failed to adjust the alignment constraint on
a memcpy to reflect that '0' has a different meaning when applied to
a load or store. Now we correctly use underaligned loads and stores for
the test case added.

llvm-svn: 165101

11 years agoTry to use a better set of abstractions for computing the alignment
Chandler Carruth [Wed, 3 Oct 2012 08:14:02 +0000 (08:14 +0000)]
Try to use a better set of abstractions for computing the alignment
necessary during rewriting. As part of this, fix a real think-o here
where we might have left off an alignment specification when the address
is in fact underaligned. I haven't come up with any way to trigger this,
as there is always some other factor that reduces the alignment, but it
certainly might have been an observable bug in some way I can't think
of. This also slightly changes the strategy for placing explicit
alignments on loads and stores to only do so when the alignment does not
match that required by the ABI. This causes a few redundant alignments
to go away from test cases.

I've also added a couple of tests that really push on the alignment that
we end up with on loads and stores. More to come here as I try to fix an
underlying bug I have conjectured and produced test cases for, although
it's not clear if this bug is the one currently hitting dragonegg's
gcc47 bootstrap.

llvm-svn: 165100