platform/upstream/llvm.git
11 years agoRemove Path::canExecute.
Rafael Espindola [Wed, 19 Jun 2013 13:25:31 +0000 (13:25 +0000)]
Remove Path::canExecute.

llvm-svn: 184298

11 years agoUse llvm::sys::fs::can_execute.
Rafael Espindola [Wed, 19 Jun 2013 13:24:29 +0000 (13:24 +0000)]
Use llvm::sys::fs::can_execute.

llvm-svn: 184297

11 years ago[sanitizer] Fix struct ifconf definition on Mac and restore the size checks.
Evgeniy Stepanov [Wed, 19 Jun 2013 13:21:38 +0000 (13:21 +0000)]
[sanitizer] Fix struct ifconf definition on Mac and restore the size checks.

llvm-svn: 184296

11 years agoWhen the compiler is not providing a clean triple, we should fail
Sylvestre Ledru [Wed, 19 Jun 2013 12:59:56 +0000 (12:59 +0000)]
When the compiler is not providing a clean triple, we should fail
the build right from the start.
For now, it is only done with DEBUGMAKE is provided. That makes
things harder to debug during ports of compiler-rt on other systems.

llvm-svn: 184295

11 years ago[ASan] Delete excessive 'extern "C"' around mlock* interceptors.
Alexander Potapenko [Wed, 19 Jun 2013 11:36:51 +0000 (11:36 +0000)]
[ASan] Delete excessive 'extern "C"' around mlock* interceptors.

llvm-svn: 184294

11 years ago[sanitizer] Fix Android build.
Evgeniy Stepanov [Wed, 19 Jun 2013 10:36:31 +0000 (10:36 +0000)]
[sanitizer] Fix Android build.

llvm-svn: 184293

11 years agoThe RenderMethod field in RegisterOperand class sets the name of the method on the...
Vladimir Medic [Wed, 19 Jun 2013 10:14:36 +0000 (10:14 +0000)]
The RenderMethod field in RegisterOperand class sets the name of the method on the target specific operand to call to add the target specific operand to an MCInst. This patch defines RenderMethod for mips RegisterOperand classes and removes redundant code from MipsAsmParser.cpp

llvm-svn: 184292

11 years agoMachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use std::string...
NAKAMURA Takumi [Wed, 19 Jun 2013 09:55:05 +0000 (09:55 +0000)]
MachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use std::string instead.

llvm-svn: 184291

11 years ago[sanitizer] Fix build on RHEL 6.3, 6.4.
Evgeniy Stepanov [Wed, 19 Jun 2013 08:55:28 +0000 (08:55 +0000)]
[sanitizer] Fix build on RHEL 6.3, 6.4.

linux/if_ppp.h is broken in certain kernels.

llvm-svn: 184290

11 years agoFix a crash in the static analyzer (bug #16307)
Pavel Labath [Wed, 19 Jun 2013 08:19:56 +0000 (08:19 +0000)]
Fix a crash in the static analyzer (bug #16307)

Summary:
When processing a call to a function, which got passed less arguments than it
expects, the analyzer would crash.

I've also added a test for that and a analyzer warning which detects these
cases.

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D994

llvm-svn: 184288

11 years agoFixed comment typo that causes the given comment to actually make sense.
Michael Gottesman [Wed, 19 Jun 2013 07:34:21 +0000 (07:34 +0000)]
Fixed comment typo that causes the given comment to actually make sense.

llvm-svn: 184286

11 years agoPrune "\param InitialState" since it has not been introduced. [-Wdocumentation]
NAKAMURA Takumi [Wed, 19 Jun 2013 06:58:29 +0000 (06:58 +0000)]
Prune "\param InitialState" since it has not been introduced. [-Wdocumentation]

llvm-svn: 184285

11 years agoFix a warning. [-Wunused-variable]
NAKAMURA Takumi [Wed, 19 Jun 2013 06:58:20 +0000 (06:58 +0000)]
Fix a warning. [-Wunused-variable]

llvm-svn: 184284

11 years agoRevert r184249, "doc. parsing: Allow parameter name "..." for variadic functions...
NAKAMURA Takumi [Wed, 19 Jun 2013 06:58:14 +0000 (06:58 +0000)]
Revert r184249, "doc. parsing: Allow parameter name "..." for variadic functions/methods."

It crashes in the case;

/// Without any "param"s in the description.
int printf(const char *format, ...);

llvm-svn: 184283

11 years agoSLPVectorizer: vectorize compares and selects.
Nadav Rotem [Wed, 19 Jun 2013 05:49:52 +0000 (05:49 +0000)]
SLPVectorizer: vectorize compares and selects.

llvm-svn: 184282

11 years agoDocument the return value and fix a typo.
Nadav Rotem [Wed, 19 Jun 2013 05:47:33 +0000 (05:47 +0000)]
Document the return value and fix a typo.

llvm-svn: 184281

11 years agoA few small enhancements to the diagnose-unwind command.
Jason Molenda [Wed, 19 Jun 2013 04:52:55 +0000 (04:52 +0000)]
A few small enhancements to the diagnose-unwind command.

Change the simple-minded stack walk to not depend on lldb to unwind
the first frame.

Collect a list of Modules and Addresses seen while backtracing (with
both methods), display the image list output for all of those modules,
plus disassemble and image show-unwind any additional frames that
the simple backtrace was able to unwind through instead of just the
lldb unwind algorithm frames.

Remove checks for older lldb's that didn't support -a for disassemble
or specifying the assembler syntax on x86 targets.

llvm-svn: 184280

11 years agoImprovements to "command script import" to better support reloading in Xcode
Enrico Granata [Wed, 19 Jun 2013 03:05:52 +0000 (03:05 +0000)]
Improvements to "command script import" to better support reloading in Xcode

Xcode spawns a new LLDB SBDebugger for each debug session, and this was causing the reloading of python modules to fail across debug sessions

(long story short: the module would not be loaded in the current instance of the ScriptInterpreter, but would still be present in sys.modules, hence the import call would just make a copy of it and not run it again
Greg's new decorator uncovered the issue since it relies on actually loading the module's code rather than using __lldb_init_module as the active entity)

This patch introduces the notion of a local vs. global import and crafts an appropriate command to allow reloading to work across debug sessions

llvm-svn: 184279

11 years agoTest commit access.
Wan Xiaofei [Wed, 19 Jun 2013 02:26:00 +0000 (02:26 +0000)]
Test commit access.

llvm-svn: 184278

11 years agoDelete dead code.
Eli Friedman [Wed, 19 Jun 2013 02:07:51 +0000 (02:07 +0000)]
Delete dead code.

llvm-svn: 184277

11 years agoDebug Info: support for gdwarf-2 gdwarf-3 gdwarf-4
Manman Ren [Wed, 19 Jun 2013 01:46:49 +0000 (01:46 +0000)]
Debug Info: support for gdwarf-2 gdwarf-3 gdwarf-4

These options will add a module flag with name "Dwarf Version".
The behavior flag is currently set to Warning, so when two values disagree,
a warning will be emitted.

llvm-svn: 184276

11 years agoAdd test coverage for serialization of dependent function template specializations.
Eli Friedman [Wed, 19 Jun 2013 01:38:21 +0000 (01:38 +0000)]
Add test coverage for serialization of dependent function template specializations.

llvm-svn: 184275

11 years agoAdded a new decorator function in the "lldb" module that can register a command autom...
Greg Clayton [Wed, 19 Jun 2013 01:38:02 +0000 (01:38 +0000)]
Added a new decorator function in the "lldb" module that can register a command automatically. We have just a few kinks to work out for the Xcode workflow and we will be ready to switch over to using this. To use this, you can decorate your python function as:

@lldb.command("new_command", "Documentation string for new_command...")
def new_command(debugger, command, result, dict):
    ....

No more need to register your command in the __lldb_init_module function!

llvm-svn: 184274

11 years agoRemove `using namespace` and use explicit qualification.
Sean Silva [Wed, 19 Jun 2013 01:13:28 +0000 (01:13 +0000)]
Remove `using namespace` and use explicit qualification.

There were only two places it was actually making anything shorter.

llvm-svn: 184273

11 years agoRemove spurious space.
Sean Silva [Wed, 19 Jun 2013 01:10:58 +0000 (01:10 +0000)]
Remove spurious space.

llvm-svn: 184272

11 years agoRemove unused parameter.
Sean Silva [Wed, 19 Jun 2013 01:10:11 +0000 (01:10 +0000)]
Remove unused parameter.

Not sure why we weren't catching this with -Wunused-parameter...

Spotted by inspection.

llvm-svn: 184271

11 years agoDon't actually Halt in the Interrupt handler for the Process, just send an AsyncInter...
Jim Ingham [Wed, 19 Jun 2013 00:56:17 +0000 (00:56 +0000)]
Don't actually Halt in the Interrupt handler for the Process, just send an AsyncInterrupt.
That's actually not async-signal-clean, but it is a lot safer than Halt...

llvm-svn: 184270

11 years ago[yaml2obj][ELF] Beef up this test a bit.
Sean Silva [Wed, 19 Jun 2013 00:55:32 +0000 (00:55 +0000)]
[yaml2obj][ELF] Beef up this test a bit.

llvm-svn: 184269

11 years ago[yaml2obj][ELF] Support ELFOSABI_* enum.
Sean Silva [Wed, 19 Jun 2013 00:55:28 +0000 (00:55 +0000)]
[yaml2obj][ELF] Support ELFOSABI_* enum.

llvm-svn: 184268

11 years agoThere is no ELF ABI version enum.
Sean Silva [Wed, 19 Jun 2013 00:55:23 +0000 (00:55 +0000)]
There is no ELF ABI version enum.

llvm-svn: 184267

11 years ago[ELF] add -u/--undefined option, to define undefined symbols
Shankar Easwaran [Wed, 19 Jun 2013 00:31:09 +0000 (00:31 +0000)]
[ELF] add -u/--undefined option, to define undefined symbols

llvm-svn: 184266

11 years ago<rdar://problem/14086503>
Enrico Granata [Wed, 19 Jun 2013 00:20:57 +0000 (00:20 +0000)]
<rdar://problem/14086503>

Hardening the libstdc++ std::map test case against line table changes

llvm-svn: 184265

11 years ago<rdar://problem/14086503>
Enrico Granata [Wed, 19 Jun 2013 00:14:02 +0000 (00:14 +0000)]
<rdar://problem/14086503>

Hardening the libstdc++ std::vector test case against line table changes

llvm-svn: 184264

11 years ago[yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys.
Sean Silva [Wed, 19 Jun 2013 00:11:59 +0000 (00:11 +0000)]
[yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys.

llvm-svn: 184263

11 years ago<rdar://problem/14194140>
Enrico Granata [Wed, 19 Jun 2013 00:00:45 +0000 (00:00 +0000)]
<rdar://problem/14194140>

Adding support for correctly extracting children out of vector types for data formatter purposes

llvm-svn: 184262

11 years agoUse GetUnderlyingObject instead of custom function
Matt Arsenault [Tue, 18 Jun 2013 23:37:58 +0000 (23:37 +0000)]
Use GetUnderlyingObject instead of custom function

llvm-svn: 184261

11 years ago[yaml2obj][ELF] Don't monkeypatch the YAML sections.
Sean Silva [Tue, 18 Jun 2013 23:37:23 +0000 (23:37 +0000)]
[yaml2obj][ELF] Don't monkeypatch the YAML sections.

Previously, we would monkeypatch the vector of YAML::Section's in order
to ensure that the SHT_NULL entry is present. Now we just add it
unconditionally.

The proliferation of small numerical adjustments is beginning to
frighten me, but I can't think of a way having a single point of truth
for them without introducing a whole new layer  of data structures (i.e.
lots of code and complexity) between the YAML and binary ELF formats.

llvm-svn: 184260

11 years agoAdd some comments to r184252.
Adrian Prantl [Tue, 18 Jun 2013 23:32:21 +0000 (23:32 +0000)]
Add some comments to r184252.

rdar://problem/14101097

llvm-svn: 184259

11 years ago[yaml2obj][ELF] Ensure STN_UNDEF entry is present.
Sean Silva [Tue, 18 Jun 2013 23:19:17 +0000 (23:19 +0000)]
[yaml2obj][ELF] Ensure STN_UNDEF entry is present.

llvm-svn: 184258

11 years ago[analyzer] Do not create a CompoundVal for lvalue InitListExprs.
Anna Zaks [Tue, 18 Jun 2013 23:16:20 +0000 (23:16 +0000)]
[analyzer] Do not create a CompoundVal for lvalue InitListExprs.

These should be treated like scalars. This fixes a crash reported in radar://14164698.

llvm-svn: 184257

11 years ago[analyzer] Do not report uninitialized value warnings inside swap functions.
Anna Zaks [Tue, 18 Jun 2013 23:16:15 +0000 (23:16 +0000)]
[analyzer] Do not report uninitialized value warnings inside swap functions.

This silences warnings that could occur when one is swapping partially initialized structs. We suppress
not only the assignments of uninitialized members, but any values inside swap because swap could
potentially be used as a subroutine to swap class members.

This silences a warning from std::try::function::swap() on partially initialized objects.

llvm-svn: 184256

11 years ago[yaml2obj][ELF] Rudimentary symbol table support.
Sean Silva [Tue, 18 Jun 2013 23:14:03 +0000 (23:14 +0000)]
[yaml2obj][ELF] Rudimentary symbol table support.

Currently, we only output the name.

llvm-svn: 184255

11 years agoSmall correction to unordered memory code generation of ARM LDRD
JF Bastien [Tue, 18 Jun 2013 23:07:16 +0000 (23:07 +0000)]
Small correction to unordered memory code generation of ARM LDRD

The information was correct pre-LPAE.

llvm-svn: 184253

11 years agoEmit forward decls for structs with declarations only when we are
Adrian Prantl [Tue, 18 Jun 2013 23:01:56 +0000 (23:01 +0000)]
Emit forward decls for structs with declarations only when we are
limiting debug info.

FIXME: There is still work left to do here, the testcase should work even with -flimit-debug-info.

rdar://problem/14101097

llvm-svn: 184252

11 years agoAdded the ability to get a list of types from a SBModule or SBCompileUnit. Sebastien...
Greg Clayton [Tue, 18 Jun 2013 22:51:05 +0000 (22:51 +0000)]
Added the ability to get a list of types from a SBModule or SBCompileUnit. Sebastien Metrot wanted this, and sent a hollowed out patch. I filled in the blanks and did the low level implementation. The new functions are:

//------------------------------------------------------------------
/// Get all types matching \a type_mask from debug info in this
/// module.
///
/// @param[in] type_mask
///     A bitfield that consists of one or more bits logically OR'ed
///     together from the lldb::TypeClass enumeration. This allows
///     you to request only structure types, or only class, struct
///     and union types. Passing in lldb::eTypeClassAny will return
///     all types found in the debug information for this module.
///
/// @return
///     A list of types in this module that match \a type_mask
//------------------------------------------------------------------
lldb::SBTypeList
SBModule::GetTypes (uint32_t type_mask)

//------------------------------------------------------------------
/// Get all types matching \a type_mask from debug info in this
/// compile unit.
///
/// @param[in] type_mask
///    A bitfield that consists of one or more bits logically OR'ed
///    together from the lldb::TypeClass enumeration. This allows
///    you to request only structure types, or only class, struct
///    and union types. Passing in lldb::eTypeClassAny will return
///    all types found in the debug information for this compile
///    unit.
///
/// @return
///    A list of types in this compile unit that match \a type_mask
//------------------------------------------------------------------
lldb::SBTypeList
SBCompileUnit::GetTypes (uint32_t type_mask = lldb::eTypeClassAny);

This lets you request types by filling out a mask that contains one or more bits from the lldb::TypeClass enumerations, so you can only get the types you really want.

llvm-svn: 184251

11 years agoIntroduce a new mangling for protocol-qualified ObjC types in C++. This allows
Eli Friedman [Tue, 18 Jun 2013 22:41:37 +0000 (22:41 +0000)]
Introduce a new mangling for protocol-qualified ObjC types in C++.  This allows
to provide proper overloading, and also prevents mangling conflicts with
template arguments of protocol-qualified type.

This is a non-backward-compatible mangling change, but per discussion with
John, the benefits outweigh this cost.

Fixes <rdar://problem/14074822>.

llvm-svn: 184250

11 years agodoc. parsing: Allow parameter name "..." for variadic functions/methods.
Fariborz Jahanian [Tue, 18 Jun 2013 22:40:39 +0000 (22:40 +0000)]
doc. parsing: Allow parameter name "..." for variadic functions/methods.
// rdar://14124644

llvm-svn: 184249

11 years ago<rdar://problem/14194128>
Enrico Granata [Tue, 18 Jun 2013 22:40:36 +0000 (22:40 +0000)]
<rdar://problem/14194128>

ClangASTContext was failing to retrieve fields and base class info for ObjC variables
This checkin fixes that and adds a test case

llvm-svn: 184248

11 years agoIdentify me on IRC.
Bill Wendling [Tue, 18 Jun 2013 22:09:36 +0000 (22:09 +0000)]
Identify me on IRC.

llvm-svn: 184247

11 years agoAdd assertion for when no watchpoint found in POSIX watchnotify handler.
Matt Kopec [Tue, 18 Jun 2013 21:58:02 +0000 (21:58 +0000)]
Add assertion for when no watchpoint found in POSIX watchnotify handler.
Also, ensure x86_64 watchpoint registers are initialized before they are accessed on the POSIX side.

llvm-svn: 184246

11 years agoWe were getting an assert because somebody was making a watchpoint that was
Jim Ingham [Tue, 18 Jun 2013 21:52:48 +0000 (21:52 +0000)]
We were getting an assert because somebody was making a watchpoint that was
neither read nor write.  Tighten up the checking so this isn't possible.

<rdar://problem/14111167>

llvm-svn: 184245

11 years agoARM: Add optional datatype suffix to NEON mvn asm syntax.
Jim Grosbach [Tue, 18 Jun 2013 21:49:21 +0000 (21:49 +0000)]
ARM: Add optional datatype suffix to NEON mvn asm syntax.

rdar://14194152

llvm-svn: 184244

11 years agoMake the lldb "Release" configuration use the same llvm build "Release+Asserts" as...
Jim Ingham [Tue, 18 Jun 2013 21:44:59 +0000 (21:44 +0000)]
Make the lldb "Release" configuration use the same llvm build "Release+Asserts" as the lldb "Debug" configuration.
No need to rebuild llvm and remove asserts to build the local optimized lldb.

llvm-svn: 184243

11 years ago[yaml2obj][ELF] Add dummy .strtab section.
Sean Silva [Tue, 18 Jun 2013 21:37:50 +0000 (21:37 +0000)]
[yaml2obj][ELF] Add dummy .strtab section.

This will be needed later for holding symbol names, due to the libObject
issue mentioned in the commit message of r184161.

llvm-svn: 184242

11 years agoTemporarily disable checking of watchpoint hit on FreeBSD on trace message.
Matt Kopec [Tue, 18 Jun 2013 21:35:32 +0000 (21:35 +0000)]
Temporarily disable checking of watchpoint hit on FreeBSD on trace message.

Patch from Ed Maste.

llvm-svn: 184241

11 years agoMake sure the assembler-with-cpp hack for "#" works with multiple "#"s in
Eli Friedman [Tue, 18 Jun 2013 21:33:38 +0000 (21:33 +0000)]
Make sure the assembler-with-cpp hack for "#" works with multiple "#"s in
succession. Fixes PR16363.

llvm-svn: 184240

11 years agoWe want a string representation of the attribute, not the kind as a string.
Bill Wendling [Tue, 18 Jun 2013 21:27:00 +0000 (21:27 +0000)]
We want a string representation of the attribute, not the kind as a string.

llvm-svn: 184239

11 years agoWhen declaring an ObjC interface decl with a @compatibility_alias alias name, change...
Argyrios Kyrtzidis [Tue, 18 Jun 2013 21:26:33 +0000 (21:26 +0000)]
When declaring an ObjC interface decl with a @compatibility_alias alias name, change the class name to the "real" one.

If we have something like

  @class NewImage;
  @compatibility_alias OldImage NewImage;
  @class OldImage;

the lookup for 'OldImage' will return the 'NewImage' decl ("@class NewImage").
In such a case, when creating the decl for "@class OldImage" use the real declaration name ("NewImage"),
instead of the alias one ("OldImage"), otherwise we will break IdentifierResolver and redecls-chain invariants.

Fixes crash of rdar://14112291.

llvm-svn: 184238

11 years agoPlatformDarwinKernel was treating its file path arg as a kext bundle id -- but when...
Jason Molenda [Tue, 18 Jun 2013 21:23:14 +0000 (21:23 +0000)]
PlatformDarwinKernel was treating its file path arg as a kext bundle id -- but when the user
did a manual "target modules add", it would be a file path.  If the kext bundle lookup fails,
fall back to calling PlatformDarwin's GetSharedModule which will handle a file path correctly.
<rdar://problem/14179858>

llvm-svn: 184237

11 years agoAArch64: remove accidental test output file.
Tim Northover [Tue, 18 Jun 2013 21:16:53 +0000 (21:16 +0000)]
AArch64: remove accidental test output file.

llvm-svn: 184236

11 years agoRemove Path::canWrite.
Rafael Espindola [Tue, 18 Jun 2013 21:10:03 +0000 (21:10 +0000)]
Remove Path::canWrite.

llvm-svn: 184235

11 years agoUse llvm::sys::fs::can_write.
Rafael Espindola [Tue, 18 Jun 2013 20:58:25 +0000 (20:58 +0000)]
Use llvm::sys::fs::can_write.

llvm-svn: 184234

11 years agoAdd a can_write function to PathV2.
Rafael Espindola [Tue, 18 Jun 2013 20:56:38 +0000 (20:56 +0000)]
Add a can_write function to PathV2.

llvm-svn: 184233

11 years agoPartially revert r184225 test changes and make a smaller and more generic fix.
Stephen Lin [Tue, 18 Jun 2013 20:51:51 +0000 (20:51 +0000)]
Partially revert r184225 test changes and make a smaller and more generic fix.

llvm-svn: 184232

11 years ago[ARMTargetLowering] ARMISD::{SUB,ADD}{C,E} second result is a boolean implying that...
Michael Gottesman [Tue, 18 Jun 2013 20:49:45 +0000 (20:49 +0000)]
[ARMTargetLowering] ARMISD::{SUB,ADD}{C,E} second result is a boolean implying that upper bits are always 0.

llvm-svn: 184231

11 years agoConverted an overly aggressive assert to a conditional check in AddCombineTo64bitMLAL.
Michael Gottesman [Tue, 18 Jun 2013 20:49:40 +0000 (20:49 +0000)]
Converted an overly aggressive assert to a conditional check in AddCombineTo64bitMLAL.

Said assert assumes that ADDC will always have a glue node as its second
argument and is checked before we even know that we are actually performing the
relevant MLAL optimization. This is incorrect since on ARM we *CAN* codegen ADDC
with a use list based second argument. Thus to have both effects, I converted
the assert to a conditional check which if it fails we do not perform the
optimization.

In terms of tests I can not produce an ADDC from the IR level until I get in my
multiprecision optimization patch which is forthcoming. The tests for said patch
would cause this assert to fail implying that said tests will provide the
relevant tests.

llvm-svn: 184230

11 years agoRemove unused Path::canRead.
Rafael Espindola [Tue, 18 Jun 2013 20:42:25 +0000 (20:42 +0000)]
Remove unused Path::canRead.

llvm-svn: 184229

11 years agoFix 80 col violation.
Nadav Rotem [Tue, 18 Jun 2013 20:41:52 +0000 (20:41 +0000)]
Fix 80 col violation.

llvm-svn: 184228

11 years ago[multiprecision-builtins] Added missing builtin __builtin_{add,sub}cb for {add,sub...
Michael Gottesman [Tue, 18 Jun 2013 20:40:40 +0000 (20:40 +0000)]
[multiprecision-builtins] Added missing builtin __builtin_{add,sub}cb for {add,sub} with carry for bytes.

I have had several people ask me about why this builtin was not available in
clang (since it seems like a logical conclusion). This patch implements said
builtins.

Relevant tests are included as well. I also updated the Clang language extension reference.

rdar://14192664.

llvm-svn: 184227

11 years agoFix the help for "image dump line-table" - its arguments are compilation units not...
Jim Ingham [Tue, 18 Jun 2013 20:27:11 +0000 (20:27 +0000)]
Fix the help for "image dump line-table" - its arguments are compilation units not modules.

llvm-svn: 184226

11 years agoFix C++ constructor/destructor tests when run on ARM
Stephen Lin [Tue, 18 Jun 2013 20:24:04 +0000 (20:24 +0000)]
Fix C++ constructor/destructor tests when run on ARM

llvm-svn: 184225

11 years agoChange the arm assembler to support this from the v7c spec:
Kevin Enderby [Tue, 18 Jun 2013 20:19:24 +0000 (20:19 +0000)]
Change the arm assembler to support this from the v7c spec:
"When assembling to the ARM instruction set, the .N qualifier produces
an assembler error and the .W qualifier has no effect."

In the pre-matcher handler in the asm parser the ".w" (wide) qualifier
when in ARM mode is now discarded. And an error message is now
produced when the ".n" (narrow) qualifier is used in ARM mode.

Test cases for these were added.

rdar://14064574

llvm-svn: 184224

11 years agoDR14, DR101, and part of DR1: fix handling of extern "C" declarations in
Richard Smith [Tue, 18 Jun 2013 20:15:12 +0000 (20:15 +0000)]
DR14, DR101, and part of DR1: fix handling of extern "C" declarations in
namespaces, by treating them just like we treat extern "C" declarations in
function scope.

llvm-svn: 184223

11 years agoDuring SelectionDAG building explicitly set a node to constant zero when the
Quentin Colombet [Tue, 18 Jun 2013 20:14:39 +0000 (20:14 +0000)]
During SelectionDAG building explicitly set a node to constant zero when the
value is zero.
This allows optmizations to kick in more easily.
Fix some test cases so that they remain meaningful (i.e., not completely dead
coded) when optimizations apply.

<rdar://problem/14096009> superfluous multiply by high part of zero-extended
value.

llvm-svn: 184222

11 years agoFixed a typo and naming convention.
John Thompson [Tue, 18 Jun 2013 19:56:05 +0000 (19:56 +0000)]
Fixed a typo and naming convention.

llvm-svn: 184221

11 years agoMips ELF: Mark object file as ABI compliant
Jack Carter [Tue, 18 Jun 2013 19:47:15 +0000 (19:47 +0000)]
Mips ELF: Mark object file as ABI compliant

When producing objects that are abi compliant we are
marking neither the object file nor the assembly file
correctly and thus generate warnings.

We need to set the EF_CPIC flag in the ELF header when
generating direct object.

Note that the warning is only generated when compiling without PIC.

When compiling with clang the warning will be suppressed by supplying:

 -Wa,-mno-shared -Wa,-call_nonpic

Also the following directive should also be added:

.option pic0

when compiling without PIC,  This eliminates the need for supplying:

  -mno-shared -call_nonpic

on the assembler command line.

Patch by Douglas Gilmore

llvm-svn: 184220

11 years agoRemove uniqueID from PathV1.h.
Rafael Espindola [Tue, 18 Jun 2013 19:46:19 +0000 (19:46 +0000)]
Remove uniqueID from PathV1.h.

llvm-svn: 184219

11 years agoUse llvm::sys::fs::GetUniqueID.
Rafael Espindola [Tue, 18 Jun 2013 19:40:07 +0000 (19:40 +0000)]
Use llvm::sys::fs::GetUniqueID.

llvm-svn: 184218

11 years agoAdd a GetUniqueID that will replace the uniqueID of PathV1.h.
Rafael Espindola [Tue, 18 Jun 2013 19:34:49 +0000 (19:34 +0000)]
Add a GetUniqueID that will replace the uniqueID of PathV1.h.

llvm-svn: 184217

11 years agoFix a missing pointer deref that was uncovered by one of the buildbots.
Adrian Prantl [Tue, 18 Jun 2013 18:24:04 +0000 (18:24 +0000)]
Fix a missing pointer deref that was uncovered by one of the buildbots.

llvm-svn: 184216

11 years ago<rdar://problem/12717717>
Enrico Granata [Tue, 18 Jun 2013 18:23:07 +0000 (18:23 +0000)]
<rdar://problem/12717717>

Modifying our data formatters matching algorithm to ensure that "const X*" is treated as equivalent to "X*"
Also, a couple improvements to the "lldb types" logging

llvm-svn: 184215

11 years agoCorrectly compute the index of the first string format argument when deciding
Eli Friedman [Tue, 18 Jun 2013 18:10:01 +0000 (18:10 +0000)]
Correctly compute the index of the first string format argument when deciding
whether to emit a -Wformat-security warning.  <rdar://problem/14178260>.

llvm-svn: 184214

11 years agoReduce indentation.
David Blaikie [Tue, 18 Jun 2013 18:03:17 +0000 (18:03 +0000)]
Reduce indentation.

llvm-svn: 184213

11 years agoThis patch fixes the issue where our command-line tab completer would sometimes repli...
Enrico Granata [Tue, 18 Jun 2013 18:01:08 +0000 (18:01 +0000)]
This patch fixes the issue where our command-line tab completer would sometimes replicate commands
e.g.

(lldb) pl<TAB>
Available completions:
platform
plugin
platform
plugin

Thanks to Matthew Sorrels for doing work and testing on this issue

llvm-svn: 184212

11 years agoPR14503: Don't assert if a constexpr constructor temploid instantiates to a
Richard Smith [Tue, 18 Jun 2013 17:51:51 +0000 (17:51 +0000)]
PR14503: Don't assert if a constexpr constructor temploid instantiates to a
constructor that does not initialize all members, and that constructor is used
to initialize a global.

llvm-svn: 184211

11 years agoConvert most uses of PathV1.h in ToolRunner.cpp.
Rafael Espindola [Tue, 18 Jun 2013 17:20:08 +0000 (17:20 +0000)]
Convert most uses of PathV1.h in ToolRunner.cpp.

llvm-svn: 184210

11 years agoRemoving the lldb-perf file group from our Xcode project
Enrico Granata [Tue, 18 Jun 2013 17:15:32 +0000 (17:15 +0000)]
Removing the lldb-perf file group from our Xcode project
This is in a separate project now so this duplication is unnecessary and some referenced files were also dangling after a rename

llvm-svn: 184209

11 years agoObjective-C: Fixes a typo correction bug where a
Fariborz Jahanian [Tue, 18 Jun 2013 17:10:58 +0000 (17:10 +0000)]
Objective-C: Fixes a typo correction bug where a
selector would be correted to identical selector name
in certain corner cases. // rdar://7853549

llvm-svn: 184208

11 years agoAdd support for encoding the HLE XACQUIRE and XRELEASE prefixes.
Stefanus Du Toit [Tue, 18 Jun 2013 17:08:10 +0000 (17:08 +0000)]
Add support for encoding the HLE XACQUIRE and XRELEASE prefixes.

For decoding, keep the current behavior of always decoding these as their REP
versions. In the future, this could be improved to recognize the cases where
these behave as XACQUIRE and XRELEASE and decode them as such.

llvm-svn: 184207

11 years agoAdd a version of unique_file that return just the file name.
Rafael Espindola [Tue, 18 Jun 2013 17:01:00 +0000 (17:01 +0000)]
Add a version of unique_file that return just the file name.

llvm-svn: 184206

11 years agoCodeGen: Have 'this'-returning constructors and destructors to take advantage of...
Stephen Lin [Tue, 18 Jun 2013 17:00:49 +0000 (17:00 +0000)]
CodeGen: Have 'this'-returning constructors and destructors to take advantage of the new backend 'returned' attribute.

The backend will now use the generic 'returned' attribute to form tail calls where possible, as well as avoid save-restores of 'this' in some cases (specifically the cases that matter for the ARM C++ ABI).

This patch also reverts a prior front-end only partial implementation of these optimizations, since it's no longer required.

llvm-svn: 184205

11 years agoReturn a std::string from PrependMainExecutablePath.
Rafael Espindola [Tue, 18 Jun 2013 16:47:55 +0000 (16:47 +0000)]
Return a std::string from PrependMainExecutablePath.

llvm-svn: 184204

11 years agoRemove PathV1.h use from BugDriver.cpp.
Rafael Espindola [Tue, 18 Jun 2013 16:21:54 +0000 (16:21 +0000)]
Remove PathV1.h use from BugDriver.cpp.

llvm-svn: 184203

11 years agoRemove use of PathV1.h from ExecutionDriver.cpp.
Rafael Espindola [Tue, 18 Jun 2013 16:14:09 +0000 (16:14 +0000)]
Remove use of PathV1.h from ExecutionDriver.cpp.

llvm-svn: 184202

11 years agoScan the successor blocks and use the PHI nodes as a hint for possible chain roots.
Nadav Rotem [Tue, 18 Jun 2013 15:58:05 +0000 (15:58 +0000)]
Scan the successor blocks and use the PHI nodes as a hint for possible chain roots.

llvm-svn: 184201

11 years agoAdd a return value to make this function more useful.
Nadav Rotem [Tue, 18 Jun 2013 15:57:12 +0000 (15:57 +0000)]
Add a return value to make this function more useful.

llvm-svn: 184200

11 years agoFix buildbot failure.
Fariborz Jahanian [Tue, 18 Jun 2013 15:54:30 +0000 (15:54 +0000)]
Fix buildbot failure.

llvm-svn: 184199

11 years agoRemove usage of PathV1.h from OptimizerDriver.cpp.
Rafael Espindola [Tue, 18 Jun 2013 15:54:13 +0000 (15:54 +0000)]
Remove usage of PathV1.h from OptimizerDriver.cpp.

llvm-svn: 184198

11 years agocpp11-migrate: Transforms honour header modification flag
Edwin Vane [Tue, 18 Jun 2013 15:44:58 +0000 (15:44 +0000)]
cpp11-migrate: Transforms honour header modification flag

Transforms will now make changes to headers if header modifications have been
enabled.

FIXME: Only UseNullptr contains a cursory header modification test. Other
transforms should have them too.

llvm-svn: 184197

11 years agoConvert some uses of eraseFromDisk.
Rafael Espindola [Tue, 18 Jun 2013 15:33:18 +0000 (15:33 +0000)]
Convert some uses of eraseFromDisk.

llvm-svn: 184196