platform/upstream/llvm.git
11 years agoReapply chandlerc's r173342 now that the miscompile it was triggering is fixed.
Benjamin Kramer [Thu, 24 Jan 2013 16:44:25 +0000 (16:44 +0000)]
Reapply chandlerc's r173342 now that the miscompile it was triggering is fixed.

Original commit message:
Plug TTI into the speculation logic, giving it a real cost interface
that can be specialized by targets.

The goal here is not to be more aggressive, but to just be more accurate
with very obvious cases. There are instructions which are known to be
truly free and which were not being modeled as such in this code -- see
the regression test which is distilled from an inner loop of zlib.

Everywhere the TTI cost model is insufficiently conservative I've added
explicit checks with FIXME comments to go add proper modelling of these
cost factors.

If this causes regressions, the likely solution is to make TTI even more
conservative in its cost estimates, but test cases will help here.

llvm-svn: 173357

11 years agoConstantFolding: Add a missing folding that leads to a miscompile.
Benjamin Kramer [Thu, 24 Jan 2013 16:28:28 +0000 (16:28 +0000)]
ConstantFolding: Add a missing folding that leads to a miscompile.

We use constant folding to see if an intrinsic evaluates to the same value as a
constant that we know. If we don't take the undefinedness into account we get a
value that doesn't match the actual implementation, and miscompiled code.

This was uncovered by Chandler's simplifycfg changes.

llvm-svn: 173356

11 years agounittests/SupportTests/Initialize.MultipleThreads: Enable pthread_attr_setstack(3...
NAKAMURA Takumi [Thu, 24 Jan 2013 15:29:27 +0000 (15:29 +0000)]
unittests/SupportTests/Initialize.MultipleThreads: Enable pthread_attr_setstack(3) only on Linux.

I got blamed on darwin11;
unittests/Support/ManagedStatic.cpp:35: error: 'pthread_attr_setstack' was not declared in this scope

llvm-svn: 173355

11 years agoFix a non-conformant OpenCL test case.
Joey Gouly [Thu, 24 Jan 2013 15:24:54 +0000 (15:24 +0000)]
Fix a non-conformant OpenCL test case.
Program scope variables must be declared in the constant address space
and are required to be initialized.

llvm-svn: 173354

11 years agoProperly remove this test file, that I copied over to test/SemaOpenCL in r173352.
Joey Gouly [Thu, 24 Jan 2013 15:19:51 +0000 (15:19 +0000)]
Properly remove this test file, that I copied over to test/SemaOpenCL in r173352.

llvm-svn: 173353

11 years agoFix an OpenCL test case that was OpenCL conformant.
Joey Gouly [Thu, 24 Jan 2013 15:14:22 +0000 (15:14 +0000)]
Fix an OpenCL test case that was OpenCL conformant.
It had program scope variables that were not in the constant address space,
make them to be function scope variables instead.
Also move the test to the SemaOpenCL directory.

llvm-svn: 173352

11 years agounittests/SupportTests/Initialize.MultipleThreads: Appease --vg-leak to allocate...
NAKAMURA Takumi [Thu, 24 Jan 2013 14:44:02 +0000 (14:44 +0000)]
unittests/SupportTests/Initialize.MultipleThreads: Appease --vg-leak to allocate stack explicitly for glibc.

llvm-svn: 173350

11 years agolli/RecordingMemoryManager: Free allocated sections in the destructor to satisfy...
NAKAMURA Takumi [Thu, 24 Jan 2013 14:12:12 +0000 (14:12 +0000)]
lli/RecordingMemoryManager: Free allocated sections in the destructor to satisfy --vg-leak!

FIXME: It could be generalized in MemoryManager.
llvm-svn: 173349

11 years agotsan: return the old fake numbers from malloc stats (some code already depends on...
Dmitry Vyukov [Thu, 24 Jan 2013 14:07:19 +0000 (14:07 +0000)]
tsan: return the old fake numbers from malloc stats (some code already depends on them)

llvm-svn: 173348

11 years ago[Sanitizer] use stub InternalSymbolizer on platforms where we don't have weak hooks
Alexey Samsonov [Thu, 24 Jan 2013 14:01:59 +0000 (14:01 +0000)]
[Sanitizer] use stub InternalSymbolizer on platforms where we don't have weak hooks

llvm-svn: 173347

11 years agotsan: suppress reports using both stacks
Dmitry Vyukov [Thu, 24 Jan 2013 13:50:32 +0000 (13:50 +0000)]
tsan: suppress reports using both stacks

llvm-svn: 173346

11 years agotsan: allow a front-end to provide default suppressions
Dmitry Vyukov [Thu, 24 Jan 2013 13:50:10 +0000 (13:50 +0000)]
tsan: allow a front-end to provide default suppressions

llvm-svn: 173345

11 years ago[Sanitizer] Add skeleton for InternalSymbolizer that can be used by providing callbac...
Alexey Samsonov [Thu, 24 Jan 2013 13:42:45 +0000 (13:42 +0000)]
[Sanitizer] Add skeleton for InternalSymbolizer that can be used by providing callbacks __sanitizer_symbolize_{code,data}

llvm-svn: 173344

11 years agoRevert r173342 temporarily. It appears to cause a very late miscompile
Chandler Carruth [Thu, 24 Jan 2013 13:24:24 +0000 (13:24 +0000)]
Revert r173342 temporarily. It appears to cause a very late miscompile
of stage2 in a bootstrap. Still investigating....

llvm-svn: 173343

11 years agoPlug TTI into the speculation logic, giving it a real cost interface
Chandler Carruth [Thu, 24 Jan 2013 12:39:29 +0000 (12:39 +0000)]
Plug TTI into the speculation logic, giving it a real cost interface
that can be specialized by targets.

The goal here is not to be more aggressive, but to just be more accurate
with very obvious cases. There are instructions which are known to be
truly free and which were not being modeled as such in this code -- see
the regression test which is distilled from an inner loop of zlib.

Everywhere the TTI cost model is insufficiently conservative I've added
explicit checks with FIXME comments to go add proper modelling of these
cost factors.

If this causes regressions, the likely solution is to make TTI even more
conservative in its cost estimates, but test cases will help here.

llvm-svn: 173342

11 years agoAddress a large chunk of this FIXME by accumulating the cost for
Chandler Carruth [Thu, 24 Jan 2013 12:05:17 +0000 (12:05 +0000)]
Address a large chunk of this FIXME by accumulating the cost for
unfolded constant expressions rather than checking each one
independently.

llvm-svn: 173341

11 years agoSwitch the constant expression speculation cost evaluation away from
Chandler Carruth [Thu, 24 Jan 2013 11:53:01 +0000 (11:53 +0000)]
Switch the constant expression speculation cost evaluation away from
a cost fuction that seems both a bit ad-hoc and also poorly suited to
evaluating constant expressions.

Notably, it is missing any support for trivial expressions such as
'inttoptr'. I could fix this routine, but it isn't clear to me all of
the constraints its other users are operating under.

The core protection that seems relevant here is avoiding the formation
of a select instruction wich a further chain of select operations in
a constant expression operand. Just explicitly encode that constraint.

Also, update the comments and organization here to make it clear where
this needs to go -- this should be driven off of real cost measurements
which take into account the number of constants expressions and the
depth of the constant expression tree.

llvm-svn: 173340

11 years agoRephrase the speculating scan of the conditional BB to be phrased in
Chandler Carruth [Thu, 24 Jan 2013 11:52:58 +0000 (11:52 +0000)]
Rephrase the speculating scan of the conditional BB to be phrased in
terms of cost rather than hoisting a single instruction.

This does *not* change the cost model! We still set the cost threshold
at 1 here, it's just that we track it by accumulating cost rather than
by storing an instruction.

The primary advantage is that we no longer leave no-op intrinsics in the
basic block. For example, this will now move both debug info intrinsics
and a single instruction, instead of only moving the instruction and
leaving a basic block with nothing bug debug info intrinsics in it, and
those intrinsics now no longer ordered correctly with the hoisted value.

Instead, we now splice the entire conditional basic block's instruction
sequence.

This also places the code for checking the safety of hoisting next to
the code computing the cost.

Currently, the only observable side-effect of this change is that debug
info intrinsics are no longer abandoned. I'm not sure how to craft
a test case for this, and my real goal was the refactoring, but I'll
talk to Dave or Eric about how to add a test case for this.

llvm-svn: 173339

11 years ago[asan] fix 32-bit builds
Kostya Serebryany [Thu, 24 Jan 2013 10:43:50 +0000 (10:43 +0000)]
[asan] fix 32-bit builds

llvm-svn: 173338

11 years agoSimplify the PHI node operand rewriting.
Chandler Carruth [Thu, 24 Jan 2013 10:40:51 +0000 (10:40 +0000)]
Simplify the PHI node operand rewriting.

Previously, the code would scan the PHI nodes and build up a small
setvector of candidate value pairs in phi nodes to go and rewrite. Once
certain the rewrite could be performed, the code walks the set, and for
each one re-scans the entire PHI node list looking for nodes to rewrite
operands.

Instead, scan the PHI nodes once to check for hazards, and then scan it
a second time to rewrite the operands to selects. No set vector, and
a max of two scans.

The only downside is that we might form identical selects, but
instcombine or anything else should fold those easily, and it seems
unlikely to happen often.

llvm-svn: 173337

11 years ago[asan] run-time tests for adaptive redzones
Kostya Serebryany [Thu, 24 Jan 2013 10:36:11 +0000 (10:36 +0000)]
[asan] run-time tests for adaptive redzones

llvm-svn: 173336

11 years ago[asan] adaptive redzones for globals (the larger the global the larger is the redzone)
Kostya Serebryany [Thu, 24 Jan 2013 10:35:40 +0000 (10:35 +0000)]
[asan] adaptive redzones for globals (the larger the global the larger is the redzone)

llvm-svn: 173335

11 years agoGive the basic block variables here names based on the if-then-end
Chandler Carruth [Thu, 24 Jan 2013 09:59:39 +0000 (09:59 +0000)]
Give the basic block variables here names based on the if-then-end
structure being analyzed. No functionality changed.

llvm-svn: 173334

11 years ago[ASan] fix compilation on Mac by adding a missing pwrite parameter.
Alexander Potapenko [Thu, 24 Jan 2013 09:15:08 +0000 (09:15 +0000)]
[ASan] fix compilation on Mac by adding a missing pwrite parameter.

llvm-svn: 173333

11 years agotsan: implement malloc stats querying
Dmitry Vyukov [Thu, 24 Jan 2013 09:08:03 +0000 (09:08 +0000)]
tsan: implement malloc stats querying

llvm-svn: 173332

11 years agoLift a cheap early exit test above loops and other complex early exit
Chandler Carruth [Thu, 24 Jan 2013 08:22:40 +0000 (08:22 +0000)]
Lift a cheap early exit test above loops and other complex early exit
tests. No need to pay the high cost when we're never going to do
anything.

No functionality changed.

llvm-svn: 173331

11 years agoclang/GlobalModuleIndex: Don't open the same file twice. Use raw_fd_ostream(fd, ...
NAKAMURA Takumi [Thu, 24 Jan 2013 08:20:11 +0000 (08:20 +0000)]
clang/GlobalModuleIndex: Don't open the same file twice. Use raw_fd_ostream(fd, ...) instead.

FIXME: PathV2::unique_file() is assumed to open the file with binary mode on win32.
llvm-svn: 173330

11 years agoSpiff up the comment on this method, making the example a bit more
Chandler Carruth [Thu, 24 Jan 2013 08:05:06 +0000 (08:05 +0000)]
Spiff up the comment on this method, making the example a bit more
pretty in doxygen, adding some of the details actually present in
a classic example where this matters (a loop from gzip and many other
compression algorithms), and a cautionary note about the risks inherent
in the transform. This has come up on the mailing lists recently, and
I suspect folks reading this code could benefit from going and looking
at the MI pass that can really deal with these issues.

llvm-svn: 173329

11 years agoasan/tsan: fix pwrite interceptors
Dmitry Vyukov [Thu, 24 Jan 2013 07:44:21 +0000 (07:44 +0000)]
asan/tsan: fix pwrite interceptors

llvm-svn: 173328

11 years agotsan: also test asan during presubmit checks, because sanitizer_common changes can...
Dmitry Vyukov [Thu, 24 Jan 2013 07:43:55 +0000 (07:43 +0000)]
tsan: also test asan during presubmit checks, because sanitizer_common changes can affect it

llvm-svn: 173327

11 years agoclang/test/Modules/global_index.m: XFAILing on win32 when investigating for now.
NAKAMURA Takumi [Thu, 24 Jan 2013 07:04:14 +0000 (07:04 +0000)]
clang/test/Modules/global_index.m: XFAILing on win32 when investigating for now.

llvm-svn: 173326

11 years agoMipsISelLowering.cpp: Fill unreachable paths to fix warnings. [-Wsometimes-uninitialized]
NAKAMURA Takumi [Thu, 24 Jan 2013 06:08:06 +0000 (06:08 +0000)]
MipsISelLowering.cpp: Fill unreachable paths to fix warnings. [-Wsometimes-uninitialized]

FIXME: Could they, unreachable(s), be removed?
FIXME: I could prefer the coding standards...
llvm-svn: 173325

11 years agoMipsISelLowering.cpp: Fix a warning, take two. [-Wunused-variable]
NAKAMURA Takumi [Thu, 24 Jan 2013 05:54:23 +0000 (05:54 +0000)]
MipsISelLowering.cpp: Fix a warning, take two. [-Wunused-variable]

...and fix a typo, s/#ifdef/#ifndef/

llvm-svn: 173324

11 years agoMipsISelLowering.cpp: Fix a warning. [-Wunused-variable]
NAKAMURA Takumi [Thu, 24 Jan 2013 05:47:29 +0000 (05:47 +0000)]
MipsISelLowering.cpp: Fix a warning. [-Wunused-variable]

llvm-svn: 173323

11 years agoRemove trailing whitespace.
Craig Topper [Thu, 24 Jan 2013 05:22:40 +0000 (05:22 +0000)]
Remove trailing whitespace.

llvm-svn: 173322

11 years agoAdd asserts to SmallVector so that calls to front() and back() only succeed
Richard Trieu [Thu, 24 Jan 2013 04:29:24 +0000 (04:29 +0000)]
Add asserts to SmallVector so that calls to front() and back() only succeed
if the vector is not empty.  This will ensure that calls to these functions
will reference elements in the vector.

llvm-svn: 173321

11 years agoThe next phase of Mips16 hard float implementation.
Reed Kotler [Thu, 24 Jan 2013 04:24:02 +0000 (04:24 +0000)]
The next phase of Mips16 hard float implementation.

Allow Mips16 routines to call Mips32 routines that have abi requirements
that either arguments or return values are passed in floating point
registers. This handles only the pic case. We have not done non pic
for Mips16 yet in any form.

The libm functions are Mips32, so with this addition we have a complete
Mips16 hard float implementation.

We still are not able to complete mix Mip16 and Mips32 with hard float.
That will be the next phase which will have several steps. For Mips32
to freely call Mips16 some stub functions must be created.

llvm-svn: 173320

11 years agoGive warn_redecl_library_builtin a flag name: -Wincompatible-library-redeclaration.
Nick Lewycky [Thu, 24 Jan 2013 03:43:15 +0000 (03:43 +0000)]
Give warn_redecl_library_builtin a flag name: -Wincompatible-library-redeclaration.

llvm-svn: 173319

11 years agoMachineScheduler: enable biasCriticalPath for all DAGs.
Andrew Trick [Thu, 24 Jan 2013 02:09:57 +0000 (02:09 +0000)]
MachineScheduler: enable biasCriticalPath for all DAGs.

llvm-svn: 173318

11 years agoMIsched: Added biasCriticalPath.
Andrew Trick [Thu, 24 Jan 2013 02:09:55 +0000 (02:09 +0000)]
MIsched: Added biasCriticalPath.

Allow schedulers to order DAG edges by critical path. This makes
DFS-based heuristics more stable and effective.

llvm-svn: 173317

11 years ago[ELF] Add R_X86_64_IRELATIVE.
Michael J. Spencer [Thu, 24 Jan 2013 02:08:25 +0000 (02:08 +0000)]
[ELF] Add R_X86_64_IRELATIVE.

llvm-svn: 173316

11 years agoStart checking nonnull (as well as format and argument_with_type_tag) on
Nick Lewycky [Thu, 24 Jan 2013 02:03:08 +0000 (02:03 +0000)]
Start checking nonnull (as well as format and argument_with_type_tag) on
overloaded binary operators.

llvm-svn: 173315

11 years agoFix some wonky formatting, remove spurious emacs major mode marker. No
Nick Lewycky [Thu, 24 Jan 2013 01:12:16 +0000 (01:12 +0000)]
Fix some wonky formatting, remove spurious emacs major mode marker. No
functionality change!

llvm-svn: 173314

11 years agoAdd a profile for uniquifying the AttributeSet with the AttributeSetNodes.
Bill Wendling [Thu, 24 Jan 2013 01:01:34 +0000 (01:01 +0000)]
Add a profile for uniquifying the AttributeSet with the AttributeSetNodes.

llvm-svn: 173313

11 years agoCleanup the AttributeSetNodes that we create.
Bill Wendling [Thu, 24 Jan 2013 00:14:46 +0000 (00:14 +0000)]
Cleanup the AttributeSetNodes that we create.

llvm-svn: 173311

11 years agoCreate a new class: AttributeSetNode.
Bill Wendling [Thu, 24 Jan 2013 00:06:56 +0000 (00:06 +0000)]
Create a new class: AttributeSetNode.

This is a helper class for the AttributeSetImpl class. It holds a set of
attributes that apply to a single element: function, return type, or
parameter.

These are uniqued.

llvm-svn: 173310

11 years agoMicro cleanup: use an array of const char, rather than an array of char, as the
Richard Smith [Wed, 23 Jan 2013 23:38:20 +0000 (23:38 +0000)]
Micro cleanup: use an array of const char, rather than an array of char, as the
type of the string literal implicitly used for a raw user-defined literal call.
No test; this has no semantic impact.

llvm-svn: 173309

11 years agoCheck for NULL breakpoint option thread name & queue name before comparing their...
Jim Ingham [Wed, 23 Jan 2013 23:14:13 +0000 (23:14 +0000)]
Check for NULL breakpoint option thread name & queue name before comparing their values to the new value.

<rdar://problem/13065198>

llvm-svn: 173308

11 years agoDon't check lines beginning with '#', since they could contain a path with the unexpe...
Bill Wendling [Wed, 23 Jan 2013 23:07:21 +0000 (23:07 +0000)]
Don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

llvm-svn: 173307

11 years agoDon't check lines beginning with '#', since they could contain a path with the unexpe...
Bill Wendling [Wed, 23 Jan 2013 23:06:28 +0000 (23:06 +0000)]
Don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

llvm-svn: 173306

11 years agoThe diagnostic is now a warning instead of an error. Also don't check lines beginning...
Bill Wendling [Wed, 23 Jan 2013 23:04:29 +0000 (23:04 +0000)]
The diagnostic is now a warning instead of an error. Also don't check lines beginning with '#', since they could contain a path with the unexpected word in them.

llvm-svn: 173305

11 years agoPush down the conversion of the alignment from the bit mask to a real number into...
Bill Wendling [Wed, 23 Jan 2013 23:00:05 +0000 (23:00 +0000)]
Push down the conversion of the alignment from the bit mask to a real number into the attribute implementation class.

llvm-svn: 173304

11 years agoFix for case-sensitive file systems. Ugh
Douglas Gregor [Wed, 23 Jan 2013 22:45:24 +0000 (22:45 +0000)]
Fix for case-sensitive file systems. Ugh

llvm-svn: 173303

11 years agoRemove dead methods.
Bill Wendling [Wed, 23 Jan 2013 22:38:33 +0000 (22:38 +0000)]
Remove dead methods.

llvm-svn: 173302

11 years agoImplement the writer side of the global module index.
Douglas Gregor [Wed, 23 Jan 2013 22:38:11 +0000 (22:38 +0000)]
Implement the writer side of the global module index.

The global module index is a "global" index for all of the module
files within a particular subdirectory in the module cache, which
keeps track of all of the "interesting" identifiers and selectors
known in each of the module files. One can perform a fast lookup in
the index to determine which module files will have more information
about entities with a particular name/selector. This information can
help eliminate redundant lookups into module files (a serious
performance problem) and help with creating auto-import/auto-include
Fix-Its.

The global module index is created or updated at the end of a
translation unit that has triggered a (re)build of a module by
scraping all of the .pcm files out of the module cache subdirectory,
so it catches everything. As with module rebuilds, we use the file
system's atomicity to synchronize.

llvm-svn: 173301

11 years agoAdd SectionPosition and OrderPass
Nick Kledzik [Wed, 23 Jan 2013 22:32:56 +0000 (22:32 +0000)]
Add SectionPosition and OrderPass

llvm-svn: 173300

11 years ago[ELF] Read IFUNC symbols correctly as typeResolver.
Michael J. Spencer [Wed, 23 Jan 2013 22:08:46 +0000 (22:08 +0000)]
[ELF] Read IFUNC symbols correctly as typeResolver.

llvm-svn: 173299

11 years agoFix small typo
Eli Bendersky [Wed, 23 Jan 2013 22:05:19 +0000 (22:05 +0000)]
Fix small typo

llvm-svn: 173298

11 years agoR600: Add a llvm.R600.store.swizzle intrinsics
Tom Stellard [Wed, 23 Jan 2013 21:39:49 +0000 (21:39 +0000)]
R600: Add a llvm.R600.store.swizzle intrinsics

This intrinsic is translated to ALLOC_EXPORT_WORD1_SWIZ, hence its
name. It is used to store vs/fs outputs

Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 173297

11 years agoR600: Simplify stream outputs intrinsic
Tom Stellard [Wed, 23 Jan 2013 21:39:47 +0000 (21:39 +0000)]
R600: Simplify stream outputs intrinsic

Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 173296

11 years agoAdd a test case for 'analyzer_noreturn' on category methods.
Ted Kremenek [Wed, 23 Jan 2013 21:29:13 +0000 (21:29 +0000)]
Add a test case for 'analyzer_noreturn' on category methods.

llvm-svn: 173295

11 years agoAlways process an index.html file if we have HTML output. Patch by Justin Bogner.
Ted Kremenek [Wed, 23 Jan 2013 21:22:14 +0000 (21:22 +0000)]
Always process an index.html file if we have HTML output.  Patch by Justin Bogner.

llvm-svn: 173294

11 years agoConstantFolding: Tweak r173289, it should evaluate in the intptr type, not the index...
Benjamin Kramer [Wed, 23 Jan 2013 21:21:24 +0000 (21:21 +0000)]
ConstantFolding: Tweak r173289, it should evaluate in the intptr type, not the index type.

llvm-svn: 173293

11 years agoAdd missing null check. Not sure why my tests passed before.
Ted Kremenek [Wed, 23 Jan 2013 21:12:49 +0000 (21:12 +0000)]
Add missing null check.  Not sure why my tests passed before.

llvm-svn: 173292

11 years agoHonor attribute 'analyzer_noreturn' on Objective-C methods.
Ted Kremenek [Wed, 23 Jan 2013 21:00:27 +0000 (21:00 +0000)]
Honor attribute 'analyzer_noreturn' on Objective-C methods.

This isn't likely a full solution, but it catches the common cases
and can be refined over time.

Fixes <rdar://problem/11634353>.

llvm-svn: 173291

11 years agoAdd extra indent for nested calls inside if's.
Daniel Jasper [Wed, 23 Jan 2013 20:41:06 +0000 (20:41 +0000)]
Add extra indent for nested calls inside if's.

Before:
if (aaaaaaaaaa(
    aaaaaaaaaa)) {}

After:
if (aaaaaaaaaa(
        aaaaaaaaaa)) {}

llvm-svn: 173290

11 years agoConstantFolding: Evaluate GEP indices in the index type.
Benjamin Kramer [Wed, 23 Jan 2013 20:41:05 +0000 (20:41 +0000)]
ConstantFolding: Evaluate GEP indices in the index type.

This fixes some edge cases that we would get wrong with uint64_ts.
PR14986.

llvm-svn: 173289

11 years agoAdd instruction encodings / disassembly support for l6r instructions.
Richard Osborne [Wed, 23 Jan 2013 20:08:11 +0000 (20:08 +0000)]
Add instruction encodings / disassembly support for l6r instructions.

llvm-svn: 173288

11 years agoAdd PassManager.
Michael J. Spencer [Wed, 23 Jan 2013 20:03:10 +0000 (20:03 +0000)]
Add PassManager.

It owns and manages passes.

llvm-svn: 173287

11 years agoImplement -Wvla correctly
Dmitri Gribenko [Wed, 23 Jan 2013 20:02:51 +0000 (20:02 +0000)]
Implement -Wvla correctly

GCC implements -Wvla as "warn on every VLA" (this is useful to find every VLA,
for example, if they are forbidden by coding guidelines).  Currently Clang
implements -Wvla as "warn on VLA when it is an extension".

The attached patch makes our behavior match GCC.  The existing vla extwarn is
moved under -Wvla-extension and is still included into -Wgnu.

This fixes PR5953.

llvm-svn: 173286

11 years agoInitialize SSPBufferSize. PR14999. Patch by Vinson Lee.
Chad Rosier [Wed, 23 Jan 2013 19:32:37 +0000 (19:32 +0000)]
Initialize SSPBufferSize. PR14999. Patch by Vinson Lee.

llvm-svn: 173285

11 years agoRemove unused methods and ivars.
Bill Wendling [Wed, 23 Jan 2013 19:06:01 +0000 (19:06 +0000)]
Remove unused methods and ivars.

llvm-svn: 173284

11 years agoFactor the trait for lookup into the on-based hash table of
Douglas Gregor [Wed, 23 Jan 2013 18:53:14 +0000 (18:53 +0000)]
Factor the trait for lookup into the on-based hash table of
identifiers into two parts: the part that involves dealing with the
key (which can be re-used) and the ASTReader-specific part that
creates the IdentifierInfos. While I'm at it, StringRef'ify this code,
which was using pair<const char*, unsigned>. No functionality change.

llvm-svn: 173283

11 years agodocs: clear up ambiguity
Sean Silva [Wed, 23 Jan 2013 18:28:48 +0000 (18:28 +0000)]
docs: clear up ambiguity

Anybody using clang is a "developer".

llvm-svn: 173282

11 years ago[PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with...
Argyrios Kyrtzidis [Wed, 23 Jan 2013 18:21:56 +0000 (18:21 +0000)]
[PCH] Temporarily disable the "ambiguous macro" warning that is currently bogus with a PCH
that redefined a macro without undef'ing it first.

Proper reconstruction of the macro info history from modules will properly fix this in subsequent commits.

rdar://13016031

llvm-svn: 173281

11 years agoDocumentation: add a note that -cc1 options are not guaranteed to be stable
Dmitri Gribenko [Wed, 23 Jan 2013 18:02:28 +0000 (18:02 +0000)]
Documentation: add a note that -cc1 options are not guaranteed to be stable

llvm-svn: 173280

11 years agoRevert "InstCombine: Clean up weird code that talks about a modulus that's long gone."
Benjamin Kramer [Wed, 23 Jan 2013 17:52:29 +0000 (17:52 +0000)]
Revert "InstCombine: Clean up weird code that talks about a modulus that's long gone."

This causes crashes during the build of compiler-rt during selfhost. Add a
testcase for coverage.

llvm-svn: 173279

11 years agolibclang: change return type of getCursorDecl() to 'const Decl *'
Dmitri Gribenko [Wed, 23 Jan 2013 17:25:27 +0000 (17:25 +0000)]
libclang: change return type of getCursorDecl() to 'const Decl *'

llvm-svn: 173278

11 years agoUse 'const Decl *' throughout code completion in Sema
Dmitri Gribenko [Wed, 23 Jan 2013 17:21:11 +0000 (17:21 +0000)]
Use 'const Decl *' throughout code completion in Sema

llvm-svn: 173277

11 years agoInstCombine: Clean up weird code that talks about a modulus that's long gone.
Benjamin Kramer [Wed, 23 Jan 2013 17:16:22 +0000 (17:16 +0000)]
InstCombine: Clean up weird code that talks about a modulus that's long gone.

This does the right thing unless the multiplication overflows, but the old code
didn't handle that case either.

llvm-svn: 173276

11 years agoFix powerpc test failure - forgot to initialize stack slot size for PPCLinuxMCAsmInfo
Eli Bendersky [Wed, 23 Jan 2013 17:12:15 +0000 (17:12 +0000)]
Fix powerpc test failure - forgot to initialize stack slot size for PPCLinuxMCAsmInfo

llvm-svn: 173275

11 years agoAdd constness for NestedNameSpecifier::Create parameter
Dmitri Gribenko [Wed, 23 Jan 2013 17:06:56 +0000 (17:06 +0000)]
Add constness for NestedNameSpecifier::Create parameter

llvm-svn: 173274

11 years agoDon't try to align builder-type continuations on assignments.
Daniel Jasper [Wed, 23 Jan 2013 16:58:21 +0000 (16:58 +0000)]
Don't try to align builder-type continuations on assignments.

Before:
int aaaa = aaaaa().aaaaa() // force break
           .aaaaa();
After:
int aaaa = aaaaa().aaaaa() // force break
    .aaaaa();

The other indent is just wrong and confusing.

llvm-svn: 173273

11 years agoConstify some getters in RedeclarableTemplateDecl
Dmitri Gribenko [Wed, 23 Jan 2013 16:52:57 +0000 (16:52 +0000)]
Constify some getters in RedeclarableTemplateDecl

llvm-svn: 173272

11 years agoClean up assignment of CalleeSaveStackSlotSize: get rid of the default and explicitly...
Eli Bendersky [Wed, 23 Jan 2013 16:22:04 +0000 (16:22 +0000)]
Clean up assignment of CalleeSaveStackSlotSize: get rid of the default and explicitly set this in every target that needs to change it from the default.

llvm-svn: 173270

11 years agoRemove uneeded casts
Dmitri Gribenko [Wed, 23 Jan 2013 15:56:07 +0000 (15:56 +0000)]
Remove uneeded casts

llvm-svn: 173269

11 years agoDon't try to do a hanging ident after assignments.
Daniel Jasper [Wed, 23 Jan 2013 15:55:19 +0000 (15:55 +0000)]
Don't try to do a hanging ident after assignments.

Before:
bool aaaa = aaaaaaaaaaa(
                aaaaaaaaaaaaaaaaa);

After:
bool aaaa = aaaaaaaaaaa(
    aaaaaaaaaaaaaaaaa);

The other indentation was a nice attempt but doesn't work in many cases.
Not sure what the right long term solution is as the "After: " is still
not nice. We either need to figure out what to do in the cases where it
"doesn't work" or come up with a third solution, e.g. falling back to:

bool aaaa =
    aaaaaaaaaaa(
        aaaaaaaaaaaaaaaaa);

which should always work and nicely highlight the structure.

llvm-svn: 173268

11 years agoNVPTX: Stop leaking memory by using a managed constant instead of a new Argument.
Benjamin Kramer [Wed, 23 Jan 2013 15:21:44 +0000 (15:21 +0000)]
NVPTX: Stop leaking memory by using a managed constant instead of a new Argument.

This is still an egregious hack since we don't have a nice interface for this
kind of thing but should help the valgrind leak check buildbot to become green.

llvm-svn: 173267

11 years agochange from using 2 bits to 4 bits, as 2 bits arent enough to hold the enumeration...
Shankar Easwaran [Wed, 23 Jan 2013 15:11:22 +0000 (15:11 +0000)]
change from using 2 bits to 4 bits, as 2 bits arent enough to hold the enumeration OutputKind

llvm-svn: 173266

11 years agoMake sure metarenamer won't rename special stuff (intrinsics and explicitly renamed...
Anton Korobeynikov [Wed, 23 Jan 2013 15:03:08 +0000 (15:03 +0000)]
Make sure metarenamer won't rename special stuff (intrinsics and explicitly renamed stuff).
Otherwise this might hide the problems.

llvm-svn: 173265

11 years agoFix handling of macro definitions.
Manuel Klimek [Wed, 23 Jan 2013 14:37:36 +0000 (14:37 +0000)]
Fix handling of macro definitions.

Now correctly formats:
 #define A (1)

llvm-svn: 173264

11 years ago[msan] Allow waitpid while in __msan_init().
Evgeniy Stepanov [Wed, 23 Jan 2013 14:22:05 +0000 (14:22 +0000)]
[msan] Allow waitpid while in __msan_init().

This is used in symbolizer init.

llvm-svn: 173263

11 years agoFixes layouting regression and invalid-read.
Manuel Klimek [Wed, 23 Jan 2013 14:08:21 +0000 (14:08 +0000)]
Fixes layouting regression and invalid-read.

Layouting would prevent breaking before + in
a[b + c] = d;
Regression detected by code review.

Also fixes an invalid-read found by the valgrind bot.

llvm-svn: 173262

11 years ago[sanitizer] increase the minimal mmap size in allocator to 2^16; fix the asan Mac...
Kostya Serebryany [Wed, 23 Jan 2013 14:07:17 +0000 (14:07 +0000)]
[sanitizer] increase the minimal mmap size in allocator to 2^16; fix the asan Mac build

llvm-svn: 173261

11 years ago[asan] initialize kHighMemEnd at startup (instead of at compile time) to simplify...
Kostya Serebryany [Wed, 23 Jan 2013 13:27:43 +0000 (13:27 +0000)]
[asan] initialize kHighMemEnd at startup (instead of at compile time) to simplify further changes for various address space layouts. Fix asan_allocator2 for PowerPC (tested on 44-bit address space)

llvm-svn: 173260

11 years agoFix the formatting of pointer/reference types in range-based for loops.
Daniel Jasper [Wed, 23 Jan 2013 12:58:14 +0000 (12:58 +0000)]
Fix the formatting of pointer/reference types in range-based for loops.

Before: for (int & a : Values) {}
After:  for (int &a : Values) {}
llvm-svn: 173259

11 years ago[asan] use ADD instead of OR when applying shadow offset of PowerPC. See http://gcc...
Kostya Serebryany [Wed, 23 Jan 2013 12:54:55 +0000 (12:54 +0000)]
[asan] use ADD instead of OR when applying shadow offset of PowerPC. See gcc.gnu.org/bugzilla/show_bug.cgi?id=55975 for details

llvm-svn: 173258

11 years agoRemoving the penalty for breaking after "=".
Daniel Jasper [Wed, 23 Jan 2013 12:27:43 +0000 (12:27 +0000)]
Removing the penalty for breaking after "=".

Having seen more cases, this actually was not a good thing to do in the
first place. We can still improve on what we do now, but breaking after
the "=" is good in many cases.

Before:
aaaaaaaaaaaaa = aa->aaaaaaaaaaaaaaaaaaaa(
                    aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

After:
aaaaaaaaaaaaa =
    aa->aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

llvm-svn: 173257

11 years agoFix another regression for pointer types.
Daniel Jasper [Wed, 23 Jan 2013 12:10:53 +0000 (12:10 +0000)]
Fix another regression for pointer types.

Before: if (int * a = &b) ...
After:  if (int *a = &b) ...

Also changed all the existing tests to test the expressions in question
both in a declaration and in an expression context.

llvm-svn: 173256

11 years agotsan: add stubs for malloc introspection (similar to what we have in asan)
Dmitry Vyukov [Wed, 23 Jan 2013 12:08:03 +0000 (12:08 +0000)]
tsan: add stubs for malloc introspection (similar to what we have in asan)

llvm-svn: 173255