Commit Graph

121007 Commits

Author SHA1 Message Date
Douglas Gregor 3f09de6442 Introduce a module map for (some of) the compiler-supplied
headers. The remaining headers require more sophisticated
requirements; they'll be handled separately. Part of
<rdar://problem/10710060>.

llvm-svn: 149206
2012-01-29 20:52:14 +00:00
Fariborz Jahanian 715fdd53a6 revert r149184
llvm-svn: 149205
2012-01-29 20:27:13 +00:00
Douglas Gregor e212489fef Switch over to LLVM's file-level locking facility
llvm-svn: 149204
2012-01-29 20:15:24 +00:00
Douglas Gregor 7039e358fc Move Clang's file-level locking facility over to LLVM's support
library, since it doesn't really have anything to do with Clang.

llvm-svn: 149203
2012-01-29 20:15:10 +00:00
Douglas Gregor 4f39919f38 Update line numbers. Sigh
llvm-svn: 149202
2012-01-29 20:05:18 +00:00
Douglas Gregor 65412ec682 Also require a proper shell
llvm-svn: 149201
2012-01-29 20:04:46 +00:00
Douglas Gregor e1fbde55dd Ensure that we clean up after a failed module build and cope with the
results in libclang.

llvm-svn: 149200
2012-01-29 19:57:03 +00:00
Douglas Gregor 07f4357b44 Implement code completion support for module import declarations, e.g.,
@import <complete with module names here>

or

  @import std.<complete with submodule names here>

Addresses <rdar://problem/10710117>.

llvm-svn: 149199
2012-01-29 18:15:03 +00:00
Douglas Gregor 279a6c3747 Rework HeaderSearch's interface for getting a module from a name and
for getting the name of the module file, unifying the code for
searching for a module with a given name (into lookupModule()) and
separating out the mapping to a module file (into
getModuleFileName()). No functionality change.

llvm-svn: 149197
2012-01-29 17:08:11 +00:00
Douglas Gregor dd7cae51d8 Test module lookup within a subdirectory of a normal include directory.
llvm-svn: 149196
2012-01-29 16:43:46 +00:00
Anton Korobeynikov d0c46550fe Cleanups for EABI standard functions
llvm-svn: 149195
2012-01-29 09:11:50 +00:00
Anton Korobeynikov 1b42e64280 Use base AAPCS for varargs functions even for AAPCS-VFP CC
llvm-svn: 149194
2012-01-29 09:06:09 +00:00
John McCall ffa2c1a48e When emitting an ARC epilogue that looks like a return of 'self',
kill the retain from the return site.

This has the workaround nature.  It's badness all around.

llvm-svn: 149193
2012-01-29 07:46:59 +00:00
Greg Clayton bbb032e219 Removed an incorrectly added property from SBTarget.i
llvm-svn: 149192
2012-01-29 07:09:30 +00:00
Greg Clayton 13d1950ae6 Added the ability to get the target triple, byte order and address byte size
from the SBTarget and SBModule interfaces. Also added many python properties
for easier access to many things from many SB objects.

llvm-svn: 149191
2012-01-29 06:07:39 +00:00
John McCall 6e1c012385 Get a little bit smarter about killing off the ReturnValue alloca
in the presence of straight-line cleanups.  This is a simple but
important case, particularly for ARC.

llvm-svn: 149190
2012-01-29 02:35:02 +00:00
Jakob Stoklund Olesen 198236edae Fix some scavenger performance issues.
- Don't call malloc+free in the very hot forward().
- Don't call isTiedToDefOperand().
- Don't create BitVector temporaries.
- Merge DeadRegs into KillRegs.
- Eliminate the early clobber checks, they were irrelevant to scavenging.
- Remove unnecessary code from -Asserts builds.

This speeds up ARM PEI by 3.4x and overall llc -O0 codegen time by 11%.

llvm-svn: 149189
2012-01-29 01:29:28 +00:00
Jakob Stoklund Olesen 8b1853ddef Avoid creating BitVector temporaries.
llvm-svn: 149188
2012-01-29 01:29:25 +00:00
Jakob Stoklund Olesen aaeaae07c4 Add a BitVector::reset(BitVector&) method.
The alternative LHS &= ~RHS is way too slow because it creates a
temporary that calls malloc/free.

llvm-svn: 149187
2012-01-29 01:29:22 +00:00
John McCall eed64c77d2 Complain about attempts to use 'protected' visibility on targets
like Darwin that don't support it.  We should also complain about
invalid -fvisibility=protected, but that information doesn't seem
to exist at the most appropriate time, so I've left a FIXME behind.

llvm-svn: 149186
2012-01-29 01:20:30 +00:00
Nick Lewycky 1b3167edec Fix typo.
llvm-svn: 149185
2012-01-28 23:33:44 +00:00
Fariborz Jahanian 326efeb95a objc-arc: Perform null check on receiver before sending methods which
consume one or more of their arguments. If not done, this will cause a leak
as method will not consume the argument when receiver is null.
// rdar://10444474

llvm-svn: 149184
2012-01-28 18:46:31 +00:00
Benjamin Kramer 1412816686 Make the __builtin_c[lt]zs builtins target independent.
There is really no reason to have these only available on x86. It's
just __builtin_c[tl]z for shorts.

Modernize the test while at it.

llvm-svn: 149183
2012-01-28 18:42:57 +00:00
Bob Wilson de0c335560 Add a note about a potential optimization for clz/ctz patterns for ARM
(and other targets).

llvm-svn: 149182
2012-01-28 18:30:07 +00:00
Bob Wilson 19a2f2bcc0 Use defined-at-zero behavior for CLZ/CTZ builtins on PowerPC.
llvm-svn: 149181
2012-01-28 18:02:29 +00:00
James Molloy b47489d4ef Ensure .AliasedSymbol() is called on all uses of getSymbol(). Affects ARM and MIPS ELF backends.
Fixes PR11877

llvm-svn: 149180
2012-01-28 15:58:32 +00:00
Benjamin Kramer 4efe5064c3 Silence GCC's -Wreturn-type warning.
llvm-svn: 149179
2012-01-28 15:28:41 +00:00
Benjamin Kramer 11764ab4c0 StaticAnalyzer: Move ObjC- and CXX-specific methods out of line so checkers that don't care about the language don't have to pull in all the headers.
llvm-svn: 149178
2012-01-28 12:06:22 +00:00
Abramo Bagnara 365591575d Added tests for template keyword presence.
llvm-svn: 149177
2012-01-28 11:04:22 +00:00
Rafael Espindola 004725876e Small improvement to the recursion detection logic from the previous commit.
llvm-svn: 149175
2012-01-28 06:22:14 +00:00
Rafael Espindola 72f5f170c6 Handle recursive variable definitions directly. This gives us better error
messages and allows us to fix PR11865.

llvm-svn: 149174
2012-01-28 05:57:00 +00:00
Argyrios Kyrtzidis 059cac4db4 DiagnosticsEngine::setMappingToAllDiagnostics() does not need to return bool,
caught by Chad.

llvm-svn: 149173
2012-01-28 04:35:52 +00:00
Kostya Serebryany 7471d1303d [asan] correctly use ConstantExpr::getGetElementPtr. Catch by NAKAMURA Takumi
llvm-svn: 149172
2012-01-28 04:27:16 +00:00
Jason Molenda b10ebda354 Fix shell commands that do code signing.
llvm-svn: 149171
2012-01-28 04:19:15 +00:00
Greg Clayton 3120dc6261 Bumping Xcode project versions for lldb-109 and debugserver-167.
llvm-svn: 149168
2012-01-28 02:48:10 +00:00
Greg Clayton 821ac6ddbd Added logging so we can see the field names and offsets of any structures
for when we enable the assisted layout.

llvm-svn: 149167
2012-01-28 02:22:27 +00:00
Greg Clayton 037f9fda5a Stop running so many individual commands when going into the script interpreter.
All of the commands now get globbed into a single line.

lldb.target, lldb.process, lldb.thread and lldb.frame now get initialized with
empty SBTarget, SBProcess, SBThread and SBFrame objects when they don't contain
anything. 

llvm-svn: 149166
2012-01-28 02:11:02 +00:00
Greg Clayton 9f94975ca6 Xcode codesigning is broken. Work around this by doing code signing in a shell script build phase.
llvm-svn: 149165
2012-01-28 01:40:47 +00:00
Bill Wendling 8c09040854 Reapply r149159 with a fix to add to a PHI node with a non-null parent.
llvm-svn: 149164
2012-01-28 01:17:56 +00:00
Lang Hames d78ec25e65 Remove code that adds live ranges for dead defs. It seems to be breaking things.
llvm-svn: 149163
2012-01-28 01:17:01 +00:00
Bill Wendling fa5ad212f8 Revert r149159 until I can fix tests.
llvm-svn: 149162
2012-01-28 01:10:01 +00:00
Douglas Gregor 44ba7899c4 Allow the external AST source to provide a layout without specifying
the alignment (because it's not encoded in DWARF). In this case, make
an educated guess at the alignment.

llvm-svn: 149161
2012-01-28 00:53:29 +00:00
Greg Clayton caab74e02d Adding the DWARF parser side for assited layout where the AST context
will ask ExternalASTSource objects to help laying out a type. This is needed
because the DWARF typically doesn't contain alignement or packing attribute
values, and we need to be able to match up types that the compiler uses
in expressions.

llvm-svn: 149160
2012-01-28 00:48:57 +00:00
Bill Wendling b4544544a6 Don't always create a separate block for the call to _Unwind_Resume.
Sometimes there is only one 'resume' instruction per function. In those
situations, we don't need a separate block for the call to _Unwind_Resume. In
fact, it adds a lot of overhead to code-gen if we do that -- especially at -O0.
If we have a single 'resume' instruction, just generate the call within that
block.
<rdar://problem/10694814>

llvm-svn: 149159
2012-01-28 00:47:18 +00:00
Howard Hinnant 9aa4684fbb Minor updates to a couple of comments.
llvm-svn: 149158
2012-01-28 00:34:46 +00:00
Howard Hinnant ece71ead6d Add a little paranoia for testing purposes.
llvm-svn: 149157
2012-01-28 00:32:31 +00:00
Howard Hinnant 805036cc83 Minor header fixups for test.
llvm-svn: 149156
2012-01-28 00:30:38 +00:00
Howard Hinnant 44e3703639 Silence a warning.
llvm-svn: 149155
2012-01-28 00:29:27 +00:00
Howard Hinnant ad048719a7 Sometimes it takes all day to write a decent comment. This is one of those times, and I'm still not quite sure I have them correct.
llvm-svn: 149154
2012-01-28 00:28:31 +00:00
David Greene ebb006fc3d Fix Record Name Reference
Get the record name though the init to avoid an assert.

llvm-svn: 149153
2012-01-28 00:03:24 +00:00