Commit Graph

172221 Commits

Author SHA1 Message Date
Craig Topper 2406477179 [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206254
2014-04-15 07:20:03 +00:00
Nick Lewycky 3cdb5cd00a Add a DenseMapInfo specialization for PointerUnion. In tree user to land shortly.
llvm-svn: 206253
2014-04-15 07:08:40 +00:00
Craig Topper 2617dccea2 [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206252
2014-04-15 06:32:26 +00:00
Chandler Carruth d82d4cc356 [Allocator] Constrain the Deallocate templated overloads to only apply
to types which we can compute the size of. The comparison with zero
isn't actually interesting here, it's mostly about putting sizeof into
a sfinae context.

This is particular important for Deallocate as otherwise the void*
overload can quickly become ambiguous.

llvm-svn: 206251
2014-04-15 06:29:04 +00:00
David Blaikie 7620b31568 Use unique_ptr to manage TypePromotionActions owned by TypePromotionTransaction.
llvm-svn: 206250
2014-04-15 06:17:44 +00:00
David Blaikie dc72f9774d Use unique_ptr to manage ownership of GCFunctionInfos in GCStrategy
llvm-svn: 206249
2014-04-15 06:07:26 +00:00
David Blaikie ec528ee93f Use unique_ptr for the result of Registry entries.
llvm-svn: 206248
2014-04-15 05:53:26 +00:00
David Majnemer 2e159fb6db AST: Elaborated type specifier mangling occurs before nested-name
The Ts/Tu/Te manglings should occur before the nested-name's N.

llvm-svn: 206247
2014-04-15 05:51:25 +00:00
David Blaikie 88368bae4c Use unique_ptr to manage ownership of GCStrategy objects in GCMetadata
llvm-svn: 206246
2014-04-15 05:34:49 +00:00
David Blaikie f564ab6267 Use unique_ptr for section/segment ownership in WinCOFFObjectWriter
llvm-svn: 206245
2014-04-15 05:25:03 +00:00
David Blaikie bb97e1b52e Use unique_ptr to own MCFunctions within MCModule.
MCModule's ctor had to be moved out of line so the definition of
MCFunction was available. (ctor requires the dtor of members (in case
the ctor throws) which required access to the dtor of MCFunction)

llvm-svn: 206244
2014-04-15 05:15:19 +00:00
Craig Topper 9f008867c0 [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206243
2014-04-15 04:59:12 +00:00
David Blaikie 4a7a050910 Use std::unique_ptr to manage MCBasicBlocks in MCFunction.
llvm-svn: 206242
2014-04-15 04:56:29 +00:00
Lang Hames a1bc0f5662 [MC] Require an MCContext when constructing an MCDisassembler.
This patch re-introduces the MCContext member that was removed from
MCDisassembler in r206063, and requires that an MCContext be passed in at
MCDisassembler construction time. (Previously the MCContext member had been
initialized in an ad-hoc fashion after construction). The MCCContext member
can be used by MCDisassembler sub-classes to construct constant or
target-specific MCExprs.

This patch updates disassemblers for in-tree targets, and provides the
MCRegisterInfo instance that some disassemblers were using through the
MCContext (previously those backends were constructing their own
MCRegisterInfo instances).

llvm-svn: 206241
2014-04-15 04:40:56 +00:00
NAKAMURA Takumi 33ec29ace9 X86JITInfo: [x86] Use X86CompilationCallback_SSE() along;
*not* Subtarget->hasSSE1()
  *but* __SSE__, the flag that LLVM libraries are compiled

The callback calls internal LLVM JIT libraries. It may be built with -msse (or above).

FIXME: JIT may use "host" instead of "generic" by default.
llvm-svn: 206240
2014-04-15 04:12:21 +00:00
Jim Grosbach 2c6ff0cbb4 [ARM64,C++11]: Range'ify the dead-register-definition pass.
Range-based for loops. No functional change intended.

llvm-svn: 206239
2014-04-15 02:14:09 +00:00
Jim Grosbach 3ace407630 Add iterator_range for MachineInstr defs.
llvm-svn: 206238
2014-04-15 02:14:06 +00:00
Aaron Ballman 9e3d7bd20b Partial revert of r206229, to get the build bots green again.
llvm-svn: 206237
2014-04-15 01:19:35 +00:00
Quentin Colombet 97c05b52b4 [MC] Emit an error if cfi_startproc is used before a symbol is defined.
Currently, we bind those directives with the last symbol, so if none
has been defined, this would lead to a crash of the compiler.

<rdar://problem/15939159>

llvm-svn: 206236
2014-04-15 01:17:45 +00:00
Quentin Colombet c396019837 [Register Coalescer] Add a test case for 206060.
<rdar://problem/16582185>

llvm-svn: 206235
2014-04-15 01:15:32 +00:00
Richard Trieu e729d9b598 Fix typo from r206232
llvm-svn: 206234
2014-04-15 01:06:38 +00:00
Jason Molenda c6fa5db747 Add some basic sanity checks to DynamicLoaderDarwinKernel::ReadKextSummaryHeader()
when it is reading the kext table, in case we're reading out of a core file with
corrupt contents in this region.
<rdar://problem/16601915> 

llvm-svn: 206233
2014-04-15 01:04:00 +00:00
Richard Trieu e9fa266cba Fix a bad interaction between -Wtautological-overlap-compare and delayed
diagnostics which caused delayed diagnostics on dead paths to be emitted.

llvm-svn: 206232
2014-04-15 00:57:50 +00:00
Justin Bogner 81ab90f7ed CodeGen: Handle CapturedStmt in instrumentation based profiling
CapturedStmt was being ignored by instrumentation based profiling, and
its counters attributed to the containing function. Instead, we need
to treat this as a top level entity, like we do with blocks.

llvm-svn: 206231
2014-04-15 00:50:54 +00:00
Chandler Carruth ddfadb4654 [Allocator] Add Deallocate support to the AllocatorBase CRTP class,
along with templated overloads much like we have for Allocate. These
will facilitate switching the Deallocate interface of all the Allocator
classes to accept the size by pre-filling it from the type size where we
can do so. I plan to convert several uses to the template variants in
subsequent patches prior to adding the Size parameter.

No functionality changed, WIP.

llvm-svn: 206230
2014-04-15 00:47:47 +00:00
Aaron Ballman ef5d94caf0 Fixing a typo, updating the diagnostic wording and logic based on post-commit review feedback. Amends r206186.
llvm-svn: 206229
2014-04-15 00:36:39 +00:00
Quentin Colombet f9b61e6afd [ARM64][MC] Set the default CPU string to generic.
llvm-svn: 206228
2014-04-15 00:28:39 +00:00
Quentin Colombet d9f262098f [Driver][ARM64] Make sure the default CPU is passed to the assembler.
<rdar://problem/16573920>

llvm-svn: 206227
2014-04-15 00:27:35 +00:00
Chandler Carruth ce020670a4 [Allocator] Hack around the fact that GCC can't compile the
static_assert added in r206225. I'm looking into a proper fix, but
wanted the bots back.

llvm-svn: 206226
2014-04-15 00:22:53 +00:00
Chandler Carruth 761af74802 [Allocator] Factor the Allocate template overloads into a base class
rather than defining them (differently!) in both allocators. This also
serves as a basis for documenting and even enforcing some of the
LLVM-style "allocator" concept methods which must exist with various
signatures.

I plan on extending and changing the signatures of these to further
simplify our allocator model in subsequent commits, so I wanted to
factor things as best as I could first. Notably, I'm working to add the
'Size' to the deallocation method of all allocators. This has several
implications not the least of which are faster deallocation times on
certain allocation libraries (tcmalloc). It also will allow the JIT
allocator to fully model the existing allocation interfaces and allow
sanitizer poisoning of deallocated regions. The list of advantages goes
on. =] But by factoring things first I'll be able to make this easier by
first introducing template helpers for the deallocation path.

llvm-svn: 206225
2014-04-15 00:19:41 +00:00
Reid Kleckner f80abc060c Fix warning in ms-x86-vtordisp test case
llvm-svn: 206224
2014-04-14 23:49:17 +00:00
Richard Smith a1a808c541 Ensure we evaluate VLA bounds if a variably-modified type is used as the
argument to __builtin_va_arg. Patch by Rahul Jain, some test massaging and
IR emission order changes by me.

llvm-svn: 206223
2014-04-14 23:47:48 +00:00
David Blaikie b818418689 Use std::unique_ptr for DIE children
Got bored, removed some manual memory management.

Pushed references (rather than pointers) through a few APIs rather than
replacing *x with x.get().

llvm-svn: 206222
2014-04-14 22:45:02 +00:00
Nick Lewycky 646621e6a8 Make sure these two files are distinct, or else the modules system may, on certain file systems, treat them as if they were the same file.
llvm-svn: 206221
2014-04-14 22:30:21 +00:00
Jim Grosbach a344b6c314 X86: Nuke one more CPU autodetect blurb.
Missed one in r206094. This brings MC and TargetMachine back into sync.

llvm-svn: 206220
2014-04-14 22:23:30 +00:00
David Blaikie 9027abae53 Change argument order and add explanatory comment to r206130
Changes requested in code review by Eric Christopher of r206130.

llvm-svn: 206219
2014-04-14 22:23:06 +00:00
Eric Christopher b45b4814f6 Use FrameSetup on frame instructions for the Mips port.
I can't seem to get a testcase to show a difference here, but it's
part of the unconditional-br.ll line table weirdness.

llvm-svn: 206218
2014-04-14 22:21:22 +00:00
Ben Langmuir 4f5212a60e Add module name and module map file to -module-file-info
llvm-svn: 206217
2014-04-14 22:12:44 +00:00
NAKAMURA Takumi 692d198ede [CMake] Reformat, if(MSVC)...else()...endif()
llvm-svn: 206215
2014-04-14 21:58:19 +00:00
Matt Arsenault fed3dc8dc6 Revert "Revert r206045, "Fix shift by constants for vector.""
Fix cases where the Value itself is used, and not the constant value.

llvm-svn: 206214
2014-04-14 21:50:37 +00:00
Greg Clayton 3434b578be Fix LLDB to build with top of tree LLVM/Clang.
Patch from Michael Tao.

llvm-svn: 206213
2014-04-14 21:33:38 +00:00
Greg Clayton 81057edda3 Include additional libLLVMARM64Utils.a file.
llvm-svn: 206212
2014-04-14 21:33:10 +00:00
Quentin Colombet 4097c8959c [ARM64][MC] Set the default CPU to cyclone when initilizating the MC layer.
This matches that ARM64Subtarget does for now.

This is related to <rdar://problem/16573920>

llvm-svn: 206211
2014-04-14 21:25:53 +00:00
Adrian Prantl 8714aaf0a5 Re-apply r206096 after investigating the gdb buildbot failure.
Thanks to dblaikie for updating the testcase!

Debug info: (bugfix) C++ C/Dtors can be compiled to multiple functions,
therefore, their declaration cannot have one DW_AT_linkage_name.
The specific instances however can and should have that attribute.

This patch reorders the code in DwarfUnit::getOrCreateSubprogramDIE()
to emit linkage names for C/Dtors.

rdar://problem/16362674.

llvm-svn: 206210
2014-04-14 21:16:04 +00:00
Chandler Carruth 3a8c087cb9 [cleanup] Run clang-format over most of YAMLParser.h to fix a bunch of
small formatting inconsistencies with the rest of LLVM and even this
file. I looked at all the changes and they seemed like just better
formatting.

llvm-svn: 206209
2014-04-14 21:12:15 +00:00
Louis Gerbarg cfc05450e5 Fix for codegen bug that could cause illegal cmn instruction generation
In rare cases the dead definition elimination pass code can cause illegal cmn
instructions when it replaces dead registers on instructions that use
unmaterialized frame indexes. This patch disables the dead definition
optimization for instructions which include frame index operands.

rdar://16438284

llvm-svn: 206208
2014-04-14 21:05:05 +00:00
Louis Gerbarg 6d2e3c638f Add a flag to disable the ARM64DeadRegisterDefinitionsPass
This patch adds a -arm64-dead-def-elimination flag so that it is possible to
disable dead definition elimination. Includes test case.

llvm-svn: 206207
2014-04-14 21:05:02 +00:00
Richard Smith 82dce550c8 PR19415: Converting 'constexpr' to 'const' in a non-static data member can fail
if the member is already 'const'. Don't assert in that case.

llvm-svn: 206205
2014-04-14 21:00:40 +00:00
Richard Smith ac9c9a006f PR19411: Walk lexical parents, not semantic parents, when determining whether a
DeclContext is (lexically) within a C language linkage specification.

llvm-svn: 206204
2014-04-14 20:23:58 +00:00
Ben Langmuir 6e63f50b2a Fix find command in test/Modules/prune.m broken by r206201
llvm-svn: 206203
2014-04-14 18:50:28 +00:00