Commit Graph

121358 Commits

Author SHA1 Message Date
Lang Hames 3a20bc3652 PR11868. The previous loop in LiveIntervals::join would sometimes fall over if
more than two adjacent ranges needed to be merged. The new version should be
able to handle an arbitrary sequence of adjancent ranges.

llvm-svn: 149588
2012-02-02 05:37:34 +00:00
Anton Yartsev 3da212585e Fix for PR10657 (http://llvm.org/bugs/show_bug.cgi?id=10657)
extern inline case considered

llvm-svn: 149587
2012-02-02 05:13:59 +00:00
Eli Friedman fa0df83eba Split Sema::MarkDeclarationReferenced into multiple functions; the additional entry points are needed to implement C++11 odr-use marking correctly. No functional change in this patch; I'll actually make the change which fixes the odr-use marking in a followup patch.
llvm-svn: 149586
2012-02-02 03:46:19 +00:00
Akira Hatanaka 961883c1cf Set the correct stack pointer register.
llvm-svn: 149585
2012-02-02 03:17:04 +00:00
Akira Hatanaka f029537e68 Expand EHSELECTION and EHSELECTION nodes. Set the correct exception pointer and
selector registers.
 

llvm-svn: 149584
2012-02-02 03:13:40 +00:00
Akira Hatanaka d9fef17749 Add DWARF numbers of 64-bit registers.
llvm-svn: 149583
2012-02-02 02:56:14 +00:00
Anna Zaks 699f55b98c [analyzer] Fix a false positive in the CFArrayCreate check that surfaces
the the code like this (due to x and &x being the same value but
different size):

void* x[] = { ptr1, ptr2, ptr3 };
CFArrayCreate(NULL, (const void **) &x, count, NULL);

llvm-svn: 149579
2012-02-02 01:30:08 +00:00
Richard Smith 84f6dcf2b5 constexpr:
* support the gcc __builtin_constant_p() ? ... : ... folding hack in C++11
  * check for unspecified values in pointer comparisons and pointer subtractions

llvm-svn: 149578
2012-02-02 01:16:57 +00:00
Eric Christopher dc51a5d8f3 Regen one last time.
llvm-svn: 149576
2012-02-02 01:11:30 +00:00
Douglas Gregor 83d46be31e Introduce a -cc1 option "-dependency-graphviz" that determines header
dependencies and outputs them in GraphViz format.

llvm-svn: 149575
2012-02-02 00:54:52 +00:00
Dylan Noblesmith a367022ce7 autoconf: fix build/src dir confusion
This was the cause of the silent failure to generate
clang's config.h. My bad.

Fix on r149563 / r149568.

llvm-svn: 149574
2012-02-02 00:54:18 +00:00
Fariborz Jahanian 17612b1dbf objc: don't crash if primary class is missing and continuation class
is declaring ivars. // rdar://10752081

llvm-svn: 149573
2012-02-02 00:49:12 +00:00
Eli Friedman e1ffd49165 Change the check for constant-conversion with width-1 bitfields so it doesn't suppress quite as many cases. Based off a testcase in the gcc testsuite.
llvm-svn: 149572
2012-02-02 00:40:20 +00:00
Dylan Noblesmith 4f4e745725 back out r149504
Too many weird build failures.

llvm-svn: 149571
2012-02-02 00:40:14 +00:00
Eric Christopher 7f977de4e9 Regenerate again.
llvm-svn: 149569
2012-02-02 00:19:05 +00:00
Dylan Noblesmith b5190ab264 autoconf: restore old clang-srcdir behavior
Keep the string empty when unspecified. Undoes
part of r149563.

llvm-svn: 149568
2012-02-02 00:17:33 +00:00
Eric Christopher f1329897b1 Regenerate configure.
llvm-svn: 149567
2012-02-02 00:16:55 +00:00
Ted Kremenek 7f4bd16b53 Per discussion on cfe-dev, remove '#error' and '#warning' from diagnostic text.
llvm-svn: 149566
2012-02-02 00:16:13 +00:00
Fariborz Jahanian ccded6e447 objc2: add __has_feature(objc_default_synthesize_properties).
// rdar://10770497

llvm-svn: 149565
2012-02-02 00:15:51 +00:00
Greg Clayton 43484c5cd7 When outputting hex values use unsigned integer values so we don't get
negative hex values. Also added a very rudimentary version of the == and !=
operators to the lldb.value helper class.

llvm-svn: 149564
2012-02-02 00:12:47 +00:00
Dylan Noblesmith 2badba5f27 autoconf: honor --with-clang-srcdir
configure was silently failing to produce anything in the case
where clang wasn't at tools/clang/, resulting in compilation
errors much later in the build when config.h didn't exist.

llvm-svn: 149563
2012-02-02 00:11:14 +00:00
Pete Cooper c1a6f98144 Typo
llvm-svn: 149562
2012-02-01 23:43:12 +00:00
Rafael Espindola 77295818f0 Fix the cmake build
llvm-svn: 149561
2012-02-01 23:40:51 +00:00
Eric Christopher c9e6924fb2 r149474 went a bit too far when combined with type caching. If we want
a full type go ahead and emit it if we currently only have a forward
declaration.

Fixes gdb bots for gdb1090.exp and call-ar-st.exp.

llvm-svn: 149560
2012-02-01 23:39:00 +00:00
Rafael Espindola 6d65d7b63d Reject mismatched "#pragma GCC visibility push" and "#pragma GCC visibility pop".
llvm-svn: 149559
2012-02-01 23:24:59 +00:00
Andrew Trick 8523b16ff5 Instruction scheduling itinerary for Intel Atom.
Adds an instruction itinerary to all x86 instructions, giving each a default latency of 1, using the InstrItinClass IIC_DEFAULT.

Sets specific latencies for Atom for the instructions in files X86InstrCMovSetCC.td, X86InstrArithmetic.td, X86InstrControl.td, and X86InstrShiftRotate.td. The Atom latencies for the remainder of the x86 instructions will be set in subsequent patches.

Adds a test to verify that the scheduler is working.

Also changes the scheduling preference to "Hybrid" for i386 Atom, while leaving x86_64 as ILP.

Patch by Preston Gurd!

llvm-svn: 149558
2012-02-01 23:20:51 +00:00
Jakob Stoklund Olesen c7024a48db Move ARM subreg index compositions to the SubRegIndex itself.
llvm-svn: 149557
2012-02-01 23:16:43 +00:00
Jakob Stoklund Olesen 2123160919 Specify SubRegIndex components on the index itself.
It is simpler to define a composite index directly:

  def ssub_2 : SubRegIndex<[dsub_1, ssub_0]>;
  def ssub_3 : SubRegIndex<[dsub_1, ssub_1]>;

Than specifying the composite indices on each register:

  CompositeIndices = [(ssub_2 dsub_1, ssub_0),
                      (ssub_3 dsub_1, ssub_1)] in ...

This also makes it clear that SubRegIndex composition is supposed to be
unique.

llvm-svn: 149556
2012-02-01 23:16:41 +00:00
Fariborz Jahanian 30febeb224 Look for declaration of CFBridgingRetain/CFBridgingRetain before
changing the diagnostic. Also use correct spelling for both.

llvm-svn: 149554
2012-02-01 22:56:20 +00:00
Andrew Trick 3441597f84 fix cmake
llvm-svn: 149553
2012-02-01 22:28:29 +00:00
Marshall Clow a27b0cd8ee added const nullptr tests
llvm-svn: 149552
2012-02-01 22:27:24 +00:00
Dylan Noblesmith 27b37ab9b1 make: fix installation of generated header files
The PROJ_SRC_DIR != PROJ_OBJ_DIR path was missing the directory
creation logic that was in the path for non-generated headers.
PR11903.

(The oversight was copied and pasted from LLVM's Makefile.rules,
where it apparently existed since time immemorial til it was
corrected in r127325.)

llvm-svn: 149551
2012-02-01 22:23:31 +00:00
Dylan Noblesmith 5b7ba95294 cmake: don't install config.h (v2)
This header is private and shouldn't be used by clients.

(This reverts r149540, reinstating r149496. False alarm.)

llvm-svn: 149550
2012-02-01 22:22:37 +00:00
Jakob Stoklund Olesen fff0dfd810 Fix a bug in the TopoOrderRC comparison function.
The final tie breaker comparison also needs to return +/-1, or 0.
This is not a less() function.

This could cause otherwise identical super-classes to be ordered
unstably, depending on what the system qsort routine does with a bad
compare function.

llvm-svn: 149549
2012-02-01 22:19:26 +00:00
Mon P Wang 9f05206659 Avoid creating an extract element to an illegal type after LegalizeTypes has run.
llvm-svn: 149548
2012-02-01 22:15:20 +00:00
Andrew Trick d06df96a7c VLIW specific scheduler framework that utilizes deterministic finite automaton (DFA).
This new scheduler plugs into the existing selection DAG scheduling framework. It is a top-down critical path scheduler that tracks register pressure and uses a DFA for pipeline modeling.

Patch by Sergei Larin!

llvm-svn: 149547
2012-02-01 22:13:57 +00:00
Jakob Stoklund Olesen 855662ad9a Avoid emitting empty arrays, they're not standard C++.
It's only by luck that we haven't produced any yet, and clang refuses to
compile them.

llvm-svn: 149546
2012-02-01 22:12:51 +00:00
Marshall Clow e71ddf2fcb removed duplicated tests - Howard was quicker than me.
llvm-svn: 149545
2012-02-01 21:49:28 +00:00
Eric Christopher 25a11e6dbd Remove duplicated comment.
llvm-svn: 149544
2012-02-01 21:48:10 +00:00
Eric Christopher 034ba7e487 Fix comment.
llvm-svn: 149543
2012-02-01 21:44:56 +00:00
Marshall Clow 62e0f4abf6 Added tests for catching const/non-const nullptr
llvm-svn: 149542
2012-02-01 21:37:24 +00:00
Howard Hinnant 60eaa49036 Add test for pointer qualification conversion.
llvm-svn: 149541
2012-02-01 21:25:40 +00:00
Dylan Noblesmith dc3980a945 cmake: revert r149496
It *looks* like this caused PR11903, somehow.

llvm-svn: 149540
2012-02-01 21:17:55 +00:00
Howard Hinnant 30025116de Changed a TODO to a 'maybe some time in the future'.
llvm-svn: 149539
2012-02-01 21:12:07 +00:00
Howard Hinnant 8030b7f751 Removed DEBUG statements.
llvm-svn: 149538
2012-02-01 21:08:30 +00:00
Howard Hinnant 089123e65f Remove a TODO regarding where some can_catch are implemented. I opted to make can_catch pure virtual in the top __shim_type_info, and have each sub-class implement its own. There are some repeated definitions, but they are trivial.
llvm-svn: 149537
2012-02-01 21:06:46 +00:00
Howard Hinnant c325fa7705 Add some tests to test catching nullptr with pointers and member pointers. Tests are only activated if #if __has_feature(cxx_nullptr).
llvm-svn: 149536
2012-02-01 21:01:52 +00:00
Douglas Gregor 2e15c844a5 Make sure that imported definitions get completed before we add
anything into the corresponding DeclContext. Co-hacked with Sean;
fixes <rdar://problem/10768928>.

llvm-svn: 149535
2012-02-01 21:00:38 +00:00
Howard Hinnant 2d6810fbd6 Quash a TODO related to catching pointer-to-member. These tests fail on my copy of gcc-4.2. But I believe the tests to be correct (and they pass for libc++abi). I've enquired on the C++ standards mailing list for a clarification in case I'm wrong. So far I've gotten one response that agrees with me.
llvm-svn: 149534
2012-02-01 20:53:21 +00:00
Benjamin Kramer 72e6ce5aa9 libclang: Mark clang_Cursor_isNull with CINDEX_LINKAGE to make it available on windows.
Patch by Timothy J Fontaine!

llvm-svn: 149533
2012-02-01 20:37:28 +00:00