Hans Wennborg [Wed, 26 Sep 2012 09:34:53 +0000 (09:34 +0000)]
SimplifyCFG: Refactor the switch-to-lookup table transformation by
breaking out the building of lookup tables into a separate class.
llvm-svn: 164682
NAKAMURA Takumi [Wed, 26 Sep 2012 09:24:12 +0000 (09:24 +0000)]
llvm/test/CodeGen/X86/mulx*.ll: Fix copypasto.
llvm-svn: 164681
Benjamin Kramer [Wed, 26 Sep 2012 09:10:53 +0000 (09:10 +0000)]
Run test in a freestanding environment so it doesn't accidentally pick up system headers for the wrong target.
While there add a test that verifies that the header parses in C++ mode.
llvm-svn: 164679
Nico Weber [Wed, 26 Sep 2012 09:09:17 +0000 (09:09 +0000)]
Fix two more tests that didn't do anything.
Found with
find test -type f | xargs grep RUN: | grep '%clang' | grep -iv '%s' | grep -v '%t' | grep -v '\\$'
llvm-svn: 164678
Nico Weber [Wed, 26 Sep 2012 09:02:07 +0000 (09:02 +0000)]
Make this test actually test something
llvm-svn: 164677
Sylvestre Ledru [Wed, 26 Sep 2012 08:30:35 +0000 (08:30 +0000)]
The assumption that /proc/self/exe always exists is incorrect.
For example, under a Linux chroot, /proc/ might not be mounted.
Therefor, we test if this file exist. If it is the case, use it (the current
behavior). Otherwise, we fall back to the detection used by *BSD.
The issue has been reported initially on the Debian bug tracker:
http://bugs.debian.org/674588
llvm-svn: 164676
Michael Liao [Wed, 26 Sep 2012 08:26:25 +0000 (08:26 +0000)]
Add SARX/SHRX/SHLX code generation support
llvm-svn: 164675
Michael Liao [Wed, 26 Sep 2012 08:24:51 +0000 (08:24 +0000)]
Add RORX code generation support
llvm-svn: 164674
Michael Liao [Wed, 26 Sep 2012 08:22:37 +0000 (08:22 +0000)]
Add MULX code generation support
llvm-svn: 164673
Nico Weber [Wed, 26 Sep 2012 08:19:01 +0000 (08:19 +0000)]
Revert r163022, it caused PR13924.
Add a test for PR13924. Do not revert the test added in r163022,
it surprisingly still passes even after reverting the code changes.
llvm-svn: 164672
Duncan Sands [Wed, 26 Sep 2012 07:45:36 +0000 (07:45 +0000)]
Teach the 'lint' sanity checking pass to detect simple buffer overflows.
llvm-svn: 164671
Craig Topper [Wed, 26 Sep 2012 07:43:06 +0000 (07:43 +0000)]
Revert r164663 due to buildbot failure.
llvm-svn: 164670
Chandler Carruth [Wed, 26 Sep 2012 07:41:40 +0000 (07:41 +0000)]
Revert the business end of r164636 and try again. I'll come in again. ;]
This should really, really fix PR13916. For real this time. The
underlying bug is... a bit more subtle than I had imagined.
The setup is a code pattern that leads to an @llvm.memcpy call with two
equal pointers to an alloca in the source and dest. Now, not any pattern
will do. The alloca needs to be formed just so, and both pointers should
be wrapped in different bitcasts etc. When this precise pattern hits,
a funny sequence of events transpires. First, we correctly detect the
potential for overlap, and correctly optimize the memcpy. The first
time. However, we do simplify the set of users of the alloca, and that
causes us to run the alloca back through the SROA pass in case there are
knock-on simplifications. At this point, a curious thing has happened.
If we happen to have an i8 alloca, we have direct i8 pointer values. So
we don't bother creating a cast, we rewrite the arguments to the memcpy
to dircetly refer to the alloca.
Now, in an unrelated area of the pass, we have clever logic which
ensures that when visiting each User of a particular pointer derived
from an alloca, we only visit that User once, and directly inspect all
of its operands which refer to that particular pointer value. However,
the mechanism used to detect memcpy's with the potential to overlap
relied upon getting visited once per *Use*, not once per *User*. This is
always true *unless* the same exact value is both source and dest. It
turns out that almost nothing actually produces that pattern though.
We can hand craft test cases that more directly test this behavior of
course, and those are included. Also, note that there is a significant
missed optimization here -- we prove in many cases that there is
a non-volatile memcpy call with identical source and dest addresses. We
shouldn't prevent splitting the alloca in that case, and in fact we
should just remove such memcpy calls eagerly. I'll address that in
a subsequent commit.
llvm-svn: 164669
Craig Topper [Wed, 26 Sep 2012 07:17:37 +0000 (07:17 +0000)]
Add is16BitVector and is32BitVector to MVT and call them from EVT. Matches other similar methods.
llvm-svn: 164668
Craig Topper [Wed, 26 Sep 2012 07:11:42 +0000 (07:11 +0000)]
Replace calls to getSizeInBits with getExtendedSizeInBits since its already known its an extended type.
llvm-svn: 164667
Craig Topper [Wed, 26 Sep 2012 06:36:36 +0000 (06:36 +0000)]
Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree.
llvm-svn: 164666
Logan Chien [Wed, 26 Sep 2012 06:35:17 +0000 (06:35 +0000)]
Add struct keyword before _Unwind_Context.
In the C programming language, we have to add the
"struct" keyword. Otherwise, the compiler will
emit error message.
llvm-svn: 164665
Craig Topper [Wed, 26 Sep 2012 06:29:37 +0000 (06:29 +0000)]
Remove hasNoAVX method. Can just invert hasAVX instead.
llvm-svn: 164664
Craig Topper [Wed, 26 Sep 2012 06:28:26 +0000 (06:28 +0000)]
Mark extended type querying methods as 'readonly' to reduce compile size.
llvm-svn: 164663
Bill Wendling [Wed, 26 Sep 2012 06:16:18 +0000 (06:16 +0000)]
Generate an error message instead of asserting or segfaulting when we have a
scalar-to-vector conversion that we cannot handle. For instance, when an invalid
constraint is used in an inline asm statement.
<rdar://problem/
12284092>
llvm-svn: 164662
Ted Kremenek [Wed, 26 Sep 2012 06:00:14 +0000 (06:00 +0000)]
Remove unnecessary ASTContext& parameter from SymExpr::getType().
llvm-svn: 164661
Nico Weber [Wed, 26 Sep 2012 05:40:16 +0000 (05:40 +0000)]
Add codegen support for the __debugbreak intrinsic.
llvm-svn: 164660
Michael Liao [Wed, 26 Sep 2012 05:13:44 +0000 (05:13 +0000)]
Add 'lock' prefix output support in assembly printer
- Instead of embedding 'lock' into each mnemonic of atomic
instructions except 'xchg', we teach X86 assembly printer to output 'lock'
prefix similar to or consistent with code emitter.
llvm-svn: 164659
Eli Friedman [Wed, 26 Sep 2012 04:34:21 +0000 (04:34 +0000)]
Fix an edge case of mangling involving the combination of a lambda and typeid.
typeid (and a couple other non-standard places where we can transform an
unevaluated expression into an evaluated expression) is special
because it introduces an an expression evaluation context,
which conflicts with the mechanism to compute the current
lambda mangling context. PR12123.
I would appreciate if someone would double-check that we get the mangling
correct with this patch.
llvm-svn: 164658
Bill Wendling [Wed, 26 Sep 2012 04:04:19 +0000 (04:04 +0000)]
Generate an error message instead of asserting or segfaulting when we have a
scalar-to-vector conversion that we cannot handle. For instance, when an invalid
constraint is used in an inline asm statement.
<rdar://problem/
12284092>
llvm-svn: 164657
Eli Friedman [Wed, 26 Sep 2012 02:36:12 +0000 (02:36 +0000)]
Fix the AST representation for non-type template arguments to encode
enough information so we can mangle them correctly in cases involving
dependent parameter types. (This specifically impacts cases involving
null pointers and cases involving parameters of reference type.)
Fix the mangler to use this information instead of trying to scavenge
it out of the parameter declaration.
<rdar://problem/
12296776>.
llvm-svn: 164656
Richard Smith [Wed, 26 Sep 2012 02:18:13 +0000 (02:18 +0000)]
Teach Type::getAs<TemplateSpecializationType> that a TemplateSpecializationType
for a type alias template can appear as sugar at any level of desugaring, just
like a TypedefType.
llvm-svn: 164655
Michael Ilseman [Wed, 26 Sep 2012 01:55:01 +0000 (01:55 +0000)]
Expansions for u/srem, using the udiv expansion. More unit tests for udiv and u/srem.
Fixed issue with Release build.
llvm-svn: 164654
Sean Callanan [Wed, 26 Sep 2012 01:28:11 +0000 (01:28 +0000)]
Fixed a bug in the path remapper that caused
a crash if the path to be remaped was NULL.
<rdar://problem/
12371888>
llvm-svn: 164653
Jordan Rose [Wed, 26 Sep 2012 00:01:00 +0000 (00:01 +0000)]
Revert "Add --program-prefix support to build"
The Apple buildbots are set up to pass --target to configure for both
cross- and non-cross-compile builds, and the standard autoconf response
to this is to set the program prefix to '<target>-'. Until we can figure
out the proper way to handle this (don't pass --target? pass an explicit
--program-prefix=""? don't auto-populate program_prefix with target_alias?)
it's more important to keep the buildbots running.
This reverts r164633 /
ba48ceb1a3802e20e781ef04ea2573ffae2ac414.
llvm-svn: 164651
Ted Kremenek [Tue, 25 Sep 2012 23:58:39 +0000 (23:58 +0000)]
Update checker build.
llvm-svn: 164649
Jim Ingham [Tue, 25 Sep 2012 23:55:19 +0000 (23:55 +0000)]
Add an API to figure out whether a breakpoint is internal or not.
llvm-svn: 164648
Jason Molenda [Tue, 25 Sep 2012 23:32:06 +0000 (23:32 +0000)]
The iOSSimulator platform should create a PlatformDarwin with
is_host == true so PlatformDarwin knows it can do same-host
operations like process lookup. <rdar://problem/
12296249>
llvm-svn: 164647
Michael J. Spencer [Tue, 25 Sep 2012 23:12:48 +0000 (23:12 +0000)]
[Options] Store the option ID in OptTable::Info.
llvm-svn: 164644
Ted Kremenek [Tue, 25 Sep 2012 23:12:12 +0000 (23:12 +0000)]
Remove 'const' version of getBasicVals(), which is useless.
llvm-svn: 164643
Akira Hatanaka [Tue, 25 Sep 2012 23:07:11 +0000 (23:07 +0000)]
Initialize boolean variables in MipsSubtarget's constructor.
llvm-svn: 164642
Nick Lewycky [Tue, 25 Sep 2012 22:46:21 +0000 (22:46 +0000)]
Don't drop the alignment on a memcpy intrinsic when producing a store. This is
only a missed optimization opportunity if the store is over-aligned, but a
miscompile if the store's new type has a higher natural alignment than the
memcpy did. Fixes PR13920!
llvm-svn: 164641
Reed Kotler [Tue, 25 Sep 2012 22:34:20 +0000 (22:34 +0000)]
blank line for test commit
llvm-svn: 164640
Jordan Rose [Tue, 25 Sep 2012 22:32:51 +0000 (22:32 +0000)]
Rename CanFitInto64Bits to alwaysFitsInto64Bits per discussion on IRC.
This makes the behavior clearer concerning literals with the maximum
number of digits. For a 32-bit example, 4,000,000,000 is a valid uint32_t,
but 5,000,000,000 is not, so we'd have to count 10-digit decimal numbers
as "unsafe" (meaning we have to check for overflow when parsing them,
just as we would for numbers with 11 digits or higher). This is the same,
only with 64 bits to play with.
No functionality change.
llvm-svn: 164639
Chad Rosier [Tue, 25 Sep 2012 22:03:25 +0000 (22:03 +0000)]
[driver] Add support for the -fno-fast-math option.
rdar://
12299433
llvm-svn: 164638
Nick Lewycky [Tue, 25 Sep 2012 21:50:37 +0000 (21:50 +0000)]
Revert the business end of r164634, and replace it with a different fix. The
reason we were getting two of the same alloca is because of a memmove/memcpy
which had the same alloca in both the src and dest. Now we detect that case
directly. This has the same testcase as before, but fixes a clang test
CodeGenObjC/exceptions.m which runs clang -O2.
llvm-svn: 164636
Nick Lewycky [Tue, 25 Sep 2012 21:15:50 +0000 (21:15 +0000)]
Don't try to promote the same alloca twice. Fixes PR13916!
Chandler, it's not obvious that it's okay that this alloca gets into the list
twice to begin with. Please review and see whether this is the fix you really
want, but I wanted to get a fix checked in quickly.
llvm-svn: 164634
Sebastian Pop [Tue, 25 Sep 2012 21:15:08 +0000 (21:15 +0000)]
Add --program-prefix support to build
llvm-svn: 164633
Bill Wendling [Tue, 25 Sep 2012 20:57:48 +0000 (20:57 +0000)]
Move remaining methods inside the Attributes class. Merge the 'Attribute' namespaces.
llvm-svn: 164631
Sean Silva [Tue, 25 Sep 2012 20:52:04 +0000 (20:52 +0000)]
docs: Sphinxify HowToSubmitABug
llvm-svn: 164630
Bill Wendling [Tue, 25 Sep 2012 20:38:59 +0000 (20:38 +0000)]
Move Attribute::typeIncompatible inside of the Attributes class.
llvm-svn: 164629
Sebastian Pop [Tue, 25 Sep 2012 20:35:36 +0000 (20:35 +0000)]
TargetLowering interface to set/get minimum block entries for jump tables.
Provide interface in TargetLowering to set or get the minimum number of basic
blocks whereby jump tables are generated for switch statements rather than an
if sequence.
getMinimumJumpTableEntries() defaults to 4.
setMinimumJumpTableEntries() allows target configuration.
This patch changes the default for the Hexagon architecture to 5
as it improves performance on some benchmarks.
llvm-svn: 164628
Chad Rosier [Tue, 25 Sep 2012 19:57:20 +0000 (19:57 +0000)]
Revert r164614 to appease the buildbots.
llvm-svn: 164627
Argyrios Kyrtzidis [Tue, 25 Sep 2012 19:29:50 +0000 (19:29 +0000)]
[libclang] Do a AST concurrency check in clang_indexTranslationUnit_Impl.
llvm-svn: 164626
Argyrios Kyrtzidis [Tue, 25 Sep 2012 19:26:39 +0000 (19:26 +0000)]
Improve upon r164450 and localize the logic of updating the type of
a function decl inside the ASTNodeImporter::VisitFunctionDecl function.
llvm-svn: 164625
Dmitri Gribenko [Tue, 25 Sep 2012 19:09:15 +0000 (19:09 +0000)]
Optimize NumericLiteralParser::GetIntegerValue().
It does a conservative estimate on the size of numbers that can fit into
uint64_t. This bound is improved.
llvm-svn: 164624
Jordan Rose [Tue, 25 Sep 2012 19:03:09 +0000 (19:03 +0000)]
[analyzer] Add tests for symbolic expression liveness.
There are very few tests here because SValBuilder is fairly aggressive
about not building SymExprs that we can't evaluate, which saves memory
and CPU but also makes it very much tied to the current constraint
manager. We should probably scale back here and let things decay to
UnknownVal later on.
bitwise-ops.c tests that for the SymExprs we do create, we persist our
assumptions about them. traversal-path-unification.c tests that we do
clean out constraints on arbitrary SymExprs once they have actually died.
llvm-svn: 164623
Jordan Rose [Tue, 25 Sep 2012 19:03:06 +0000 (19:03 +0000)]
Reapply "[analyzer] Remove constraints on dead symbols as part of removeDeadBindings."
Previously, we'd just keep constraints around forever, which means we'd
never be able to merge paths that differed only in constraints on dead
symbols.
Because we now allow constraints on symbolic expressions, not just single
symbols, this requires changing SymExpr::symbol_iterator to include
intermediate symbol nodes in its traversal, not just the SymbolData leaf
nodes.
This depends on the previous commit to be correct. Originally applied in
r163444, reverted in r164275, now being re-applied.
llvm-svn: 164622
Jordan Rose [Tue, 25 Sep 2012 19:03:01 +0000 (19:03 +0000)]
[analyzer] Calculate liveness for symbolic exprs as well as atomic symbols.
No tests, but this allows the optimization of removing dead constraints.
We can then add tests that we don't do this prematurely.
<rdar://problem/
12333297>
Note: the added FIXME to investigate SymbolRegionValue liveness is
tracked by <rdar://problem/
12368183>. This patch does not change the
existing behavior.
llvm-svn: 164621
Douglas Gregor [Tue, 25 Sep 2012 18:29:14 +0000 (18:29 +0000)]
Under certain terrible circumstances (<rdar://problem/
10805775>),
top-level frameworks can actually be symlinked over to embedded
frameworks, and accessed via the top-level framework's headers. In
this case, we need to determine that the framework was *actually* an
embedded framework, so we can load the appropriate top-level module.
llvm-svn: 164620
Greg Clayton [Tue, 25 Sep 2012 18:27:12 +0000 (18:27 +0000)]
Added process attach options and also use the SBLaunchInfo and SBAttachInfo.
llvm-svn: 164619
Sid Manning [Tue, 25 Sep 2012 18:22:09 +0000 (18:22 +0000)]
This patch makes use of recently added relocation reference data. The bulk
of this is derived from the Mach-O writer. Reviewed by: Nick Kledzik.
* Adds loop to SectionChunk::write traverse references calling the
writer's fixup handler, applyFixup.
* Adds method, ELFWriter::buildAtomToAddressMap to that creates a
mapping from an atom to its runtime address.
* Adds method, ELFWriter::addressOfAtom to return the runtime address
of the atom.
llvm-svn: 164618
Nick Lewycky [Tue, 25 Sep 2012 18:17:38 +0000 (18:17 +0000)]
Make this test check the transforms it's actually doing. Also add a test that it
doesn't transform the trivially unsafe case.
llvm-svn: 164617
Michael Liao [Tue, 25 Sep 2012 18:08:13 +0000 (18:08 +0000)]
Add missing i64 max/min/umax/umin on 32-bit target
- Turn on atomic6432.ll and add specific test case as well
llvm-svn: 164616
Jim Grosbach [Tue, 25 Sep 2012 18:07:17 +0000 (18:07 +0000)]
ARM: Darwin BL/BLX relocations to out-of-range symbols.
When a BL/BLX references a symbol in the same translation unit that is
out of range, use an external relocation. The linker will use this to
generate a branch island rather than a direct reference, allowing the
relocation to resolve correctly.
rdar://
12359919
llvm-svn: 164615
Michael Ilseman [Tue, 25 Sep 2012 17:56:47 +0000 (17:56 +0000)]
Expansions for u/srem, using the udiv expansion. More unit tests for udiv and u/srem.
llvm-svn: 164614
Bob Wilson [Tue, 25 Sep 2012 17:19:29 +0000 (17:19 +0000)]
Consistently specify the assembly variant to MatchInstructionImpl.
llvm-svn: 164611
Alexander Kornienko [Tue, 25 Sep 2012 17:18:14 +0000 (17:18 +0000)]
Macro history (de-)serialization. Deserialization currently reads only the latest macro definition. Needs more work.
Summary: Passes all tests (+ the new one with code completion), but needs a thorough review in part related to modules.
Reviewers: doug.gregor
Reviewed By: alexfh
CC: cfe-commits, rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D41
llvm-svn: 164610
Bob Wilson [Tue, 25 Sep 2012 16:30:16 +0000 (16:30 +0000)]
Examine the last, not the first, instruction from the MC matcher.
If an MS-style inline asm is matched to multiple instructions, e.g., with a
a WAIT-prefix, then we need to examine the operands of the last instruction
instruction, not the prefix instruction.
llvm-svn: 164608
Douglas Gregor [Tue, 25 Sep 2012 16:13:41 +0000 (16:13 +0000)]
-iframework should allow separate arguments.
llvm-svn: 164607
Douglas Gregor [Tue, 25 Sep 2012 15:44:52 +0000 (15:44 +0000)]
Introduce builtin macros to determine whether we're building a
specific module (__building_module(modulename)) and to get the name of
the current module as an identifier (__MODULE__).
Used to help headers behave differently when they're being included as
part of building a module. Oh, the irony.
llvm-svn: 164605
Alexander Kornienko [Tue, 25 Sep 2012 12:42:05 +0000 (12:42 +0000)]
A minor doc fix.
llvm-svn: 164601
Alexey Samsonov [Tue, 25 Sep 2012 12:35:47 +0000 (12:35 +0000)]
[TSan] fork external symbolizer before starting internal threads
llvm-svn: 164600
Hans Wennborg [Tue, 25 Sep 2012 10:11:17 +0000 (10:11 +0000)]
Fix failing test/Sema/wchar.c on ARM.
Currently Sema/wchar.c fails because WCHAR_T_TYPE is defined as int,
however on ARM wchar_t is unsigned int.
This patch changes that, so this test passes for ARM.
Patch by Joey Gouly!
llvm-svn: 164598
John McCall [Tue, 25 Sep 2012 10:10:39 +0000 (10:10 +0000)]
When performing a ::delete of an object with a virtual destructor,
be sure to delete the complete object pointer, not the original
pointer. This is necessary if the base being deleted is at a
non-zero offset in the complete object. This is only required
for objects with virtual destructors because deleting an object
via a base-class subobject when the base does not have a virtual
destructor is undefined behavior.
Noticed while reviewing the last four years of cxx-abi-dev
activity.
llvm-svn: 164597
Chandler Carruth [Tue, 25 Sep 2012 10:03:40 +0000 (10:03 +0000)]
Fix a case where SROA did not correctly detect dead PHI or selects due
to chains or cycles between PHIs and/or selects. Also add a couple of
really nice test cases reduced from Kostya's reports in PR13905 and
PR13906. Both are fixed by this patch.
llvm-svn: 164596
Duncan Sands [Tue, 25 Sep 2012 10:00:49 +0000 (10:00 +0000)]
Change the way the lint sanity checking pass detects misaligned memory accesses.
Previously it was only be able to detect problems if the pointer was a numerical
value (eg inttoptr i32 1 to i32*), but not if it was an alloca or globa. The
reason was the use of ComputeMaskedBits: imagine you have "alloca i8, align 2",
and ask ComputeMaskedBits what it knows about the bits of the alloca pointer.
It can tell you that the bottom bit is known zero (due to align 2) but it can't
tell you that bit 1 is known one. That's because the address could be an even
multiple of 2 rather than an odd multiple, eg it might be a multiple of 4. Thus
trying to use KnownOne is ineffective in the case of an alloca as it will never
have any bits set. Instead look explicitly for constant offsets from allocas
and globals.
llvm-svn: 164595
NAKAMURA Takumi [Tue, 25 Sep 2012 09:53:18 +0000 (09:53 +0000)]
clang/test/CodeGenCXX/microsoft-*: Fix for -Asserts.
llvm-svn: 164594
John McCall [Tue, 25 Sep 2012 09:10:17 +0000 (09:10 +0000)]
Implement Mike Herrick's proposed noexcept mangling.
llvm-svn: 164593
John McCall [Tue, 25 Sep 2012 08:00:39 +0000 (08:00 +0000)]
In the MS ABI, ctors return 'this'. Patch by Dmitry Sokolov.
llvm-svn: 164592
John McCall [Tue, 25 Sep 2012 07:32:49 +0000 (07:32 +0000)]
Add the Microsoft __is_interface_class type trait.
Patch by Andy Gibbs!
llvm-svn: 164591
John McCall [Tue, 25 Sep 2012 07:32:39 +0000 (07:32 +0000)]
Fix for r163013 regression and further __interface enhancement.
Patch by Andy Gibbs!
llvm-svn: 164590
John McCall [Tue, 25 Sep 2012 06:56:03 +0000 (06:56 +0000)]
During jump-scope checking, build an ExprWithCleanups immediately
into the enclosing scope; this is a more accurate model but is
(I believe) unnecessary in my test case due to other flaws.
However, one of those flaws is now intentional: blocks which
appear in return statements can be trivially observed to not
extend in lifetime past the return, and so we can allow a jump
past them. Do the necessary magic in IR-generation to make
this work.
llvm-svn: 164589
Evan Cheng [Tue, 25 Sep 2012 05:32:34 +0000 (05:32 +0000)]
Fix an illegal tailcall opt where the callee returns a double via xmm while caller returns x86_fp80 via st0. rdar://
12229511
llvm-svn: 164588
Nico Weber [Tue, 25 Sep 2012 05:24:16 +0000 (05:24 +0000)]
Fix a -Wparentheses warning in the mingw build
llvm-svn: 164587
Richard Smith [Tue, 25 Sep 2012 04:46:05 +0000 (04:46 +0000)]
Fix crash when a decltype expression in a trailing return type refers to the
function being instantiated. An error recovery codepath was recursively
performing name lookup (and triggering an unbounded stack of template
instantiations which blew out the stack before hitting the depth limit).
Patch by Wei Pan!
llvm-svn: 164586
Chandler Carruth [Tue, 25 Sep 2012 02:42:03 +0000 (02:42 +0000)]
Fix a crash in SROA. This was reported independently by Takumi and
David (I think), but I would appreciate folks verifying that this fixes
the big crasher.
I'm still working on a reduced test case, but because this was causing
problems I wanted to get the fix checked in quickly.
llvm-svn: 164585
Greg Clayton [Tue, 25 Sep 2012 02:40:06 +0000 (02:40 +0000)]
<rdar://problem/9959501>
More KDP debugging process. We can not set breakpoints, hit them, resume, step and detach while running.
llvm-svn: 164584
Nick Lewycky [Tue, 25 Sep 2012 01:55:59 +0000 (01:55 +0000)]
Don't forget that strcpy and friends return a pointer to the destination, so
it's not a dead store if that pointer is used. Whoops!
llvm-svn: 164583
Michael Ilseman [Tue, 25 Sep 2012 01:33:33 +0000 (01:33 +0000)]
Unit tests for IntegerDivision. Currently, just a basic sanity check to ensure that the code was generated properly. Future work would be finding some way to test the actual result that would be computed.
llvm-svn: 164582
Eli Friedman [Tue, 25 Sep 2012 01:02:42 +0000 (01:02 +0000)]
Delete some code which is, as far as I can tell, dead.
llvm-svn: 164580
Anna Zaks [Tue, 25 Sep 2012 00:31:43 +0000 (00:31 +0000)]
[analyzer] Fix a buildbot crash triggered by turning on dynamic
dispatch.
llvm-svn: 164579
Richard Smith [Tue, 25 Sep 2012 00:23:05 +0000 (00:23 +0000)]
Don't produce diagnostics for missing ctor-initializers during template
instantiations if we encountered errors parsing some of the initializers.
llvm-svn: 164578
Jim Grosbach [Tue, 25 Sep 2012 00:08:13 +0000 (00:08 +0000)]
ARM: 'add Rd, pc, #imm' is an alias for 'adr Rd, #imm'.
rdar://9795790
llvm-svn: 164577
Nick Lewycky [Mon, 24 Sep 2012 23:47:23 +0000 (23:47 +0000)]
Remove unused name of variable to quiet a warning. Also canonicalize a
declaration to use the same form as in the rest of the file. No functionality
change.
llvm-svn: 164576
Howard Hinnant [Mon, 24 Sep 2012 23:36:40 +0000 (23:36 +0000)]
Apply the emulated nullptr_t with constexpr. This is an unusual configuration that would take advantage of this. But it has popped up in the wild and does no harm to support it.
llvm-svn: 164575
Enrico Granata [Mon, 24 Sep 2012 23:30:10 +0000 (23:30 +0000)]
Making sure we do not try to compare a NULL string - which would cause us to crash
llvm-svn: 164574
Sean Callanan [Mon, 24 Sep 2012 23:21:18 +0000 (23:21 +0000)]
Added a new Xcode build configuration, DebugClang,
which builds a Debug+Asserts build of Clang and
links LLDB against it. The Debug configuration
builds Clang with Release+Asserts, for faster
linking and smaller memory footprint when debugging
the build LLDB.
llvm-svn: 164573
Sean Callanan [Mon, 24 Sep 2012 23:11:56 +0000 (23:11 +0000)]
Removed some debugging cruft.
llvm-svn: 164572
Jim Grosbach [Mon, 24 Sep 2012 23:06:27 +0000 (23:06 +0000)]
Mark jump tables in code sections with DataRegion directives.
Even out-of-line jump tables can be in the code section, so mark them
as data-regions for those targets which support the directives.
rdar://
12362871&
12362974
llvm-svn: 164571
Chad Rosier [Mon, 24 Sep 2012 23:04:25 +0000 (23:04 +0000)]
Typo.
llvm-svn: 164570
Eli Friedman [Mon, 24 Sep 2012 23:02:26 +0000 (23:02 +0000)]
Handle C++ functional casts in a similar way to C-style casts in
unused expression warnings. <rdar://problem/
12359208>.
llvm-svn: 164569
Chad Rosier [Mon, 24 Sep 2012 22:58:50 +0000 (22:58 +0000)]
Update for r164567.
llvm-svn: 164568
Chad Rosier [Mon, 24 Sep 2012 22:57:55 +0000 (22:57 +0000)]
Rather then have a wrapper function, have tblgen instantiate the implementation.
Also remove an unused argument.
llvm-svn: 164567
Fariborz Jahanian [Mon, 24 Sep 2012 22:51:51 +0000 (22:51 +0000)]
objective-C: use 'instance variables' as plural when referring
to the feature.
llvm-svn: 164566