Commit Graph

151685 Commits

Author SHA1 Message Date
Stephen Lin c467c873e6 Corrections to r184205 ('this'-return optimization) due to the wrong version of the patch being committed originally.
1) Removed useless return value of CGCXXABI::EmitConstructorCall and CGCXXABI::EmitVirtualDestructorCall and implementations
2) Corrected last portion of CodeGenCXX/constructor-destructor-return-this to correctly test for non-'this'-return of virtual destructor calls

llvm-svn: 184330
2013-06-19 18:10:35 +00:00
Fariborz Jahanian c0607ed68b documentation parsing: patch to make @class work for
class templates; and similarly, @function  works for 
function templates. // rdar://14124702

llvm-svn: 184329
2013-06-19 18:08:03 +00:00
Rafael Espindola 351a88f697 Remove more uses of sys::Path.
llvm-svn: 184328
2013-06-19 17:49:07 +00:00
Rui Ueyama 991f42c35f [PECOFF] Add a pass to ensure the correct ordering of grouped sections.
Reviewers: shankarke

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D998

llvm-svn: 184327
2013-06-19 17:46:57 +00:00
Edwin Vane e85ba57d6a cpp11-migrate: Fixing doxygen warning
llvm-svn: 184326
2013-06-19 17:38:56 +00:00
Nadav Rotem 1e9668ea81 SLPVectorizer: handle scalars that are extracted from vectors (using ExtractElementInst).
llvm-svn: 184325
2013-06-19 17:33:16 +00:00
Renato Golin 96d7cd9d10 Revert "Adds support for openSUSE ARM v5/v7 triples."
This reverts commit 312e51ca484976c2b1254952ff23d5162ca8edc2.

llvm-svn: 184324
2013-06-19 17:28:50 +00:00
Renato Golin b1c12ce4ef Adds support for openSUSE ARM v5/v7 triples.
Now, with a comma.

Patch by İsmail Dönmez

llvm-svn: 184323
2013-06-19 17:28:42 +00:00
Edwin Vane b31df59109 cpp11-migrate: Fix parsing of '.' for header include/excludes
sys::fs::make_absolute was turning '.' into '<path>/.' which broke prefix
comparison logic. Stripping these extra chars fixes the problem.

llvm-svn: 184322
2013-06-19 17:17:31 +00:00
Reid Kleckner d29f1342c2 [CodeGen] Move EHScopeStack into its own header
CGCleanup.h isn't meant to be included by all of CodeGen according to
John.

llvm-svn: 184321
2013-06-19 17:07:50 +00:00
Rafael Espindola 374f0e2a1f Remove unused function.
llvm-svn: 184320
2013-06-19 16:47:34 +00:00
Reid Kleckner 0a0c8895ea [Windows] Fix __declspec(property) when the getter returns a ref
This fixes an issue when parsing atlbase.h.

Patch by Will Wilson!

llvm-svn: 184319
2013-06-19 16:37:23 +00:00
Rafael Espindola b5375cd1b6 Another attempt at fixing the bots.
llvm-svn: 184318
2013-06-19 16:16:13 +00:00
Nadav Rotem 86e848c849 SLPVectorizer: start constructing chains at stores that are not power of two.
The type <3 x i8> is a common in graphics and we want to be able to vectorize it.

This changes accelerates bullet by 12% and 471_omnetpp by 5%.

llvm-svn: 184317
2013-06-19 15:57:29 +00:00
Rafael Espindola 18e8cf4335 Attempt at fixing some bots.
llvm-svn: 184316
2013-06-19 15:56:53 +00:00
Rafael Espindola 8417a7883b Reduce sys::Path usage in llvm-ar.
llvm-svn: 184315
2013-06-19 15:45:37 +00:00
Manuel Klimek 1a3dc8576e Fix a remove-cstr-calls test that fails checking of the produced code.
llvm-svn: 184314
2013-06-19 15:43:40 +00:00
Manuel Klimek a0c025f5d2 Completely revamp node binding for AST matchers.
This is in preparation for the backwards references to bound
nodes, which will expose a lot more about how matches occur.  Main
changes:
- instead of building the tree of bound nodes, we build a "set" of bound
  nodes and explode all possible match combinations while running
  through the matchers; this will allow us to also implement matchers
  that filter down the current set of matches, like "equalsBoundNode"
- take the set of bound nodes at the start of the match into
  consideration when doing memoization; as part of that, reevaluated
  that memoization gives us benefits that are large enough (it still
  does - the effect on common match patterns is up to an order of
  magnitude)
- reset the bound nodes when a node does not match, thus never leaking
  information from partial sub-matcher matches for failing matchers

Effects:
- we can now correctly "explode" combinatorial matches, for example:
  allOf(forEachDescendant(...bind("a")),
  forEachDescendant(...bind("b"))) will now trigger matches for all
  combinations of matching "a" and "b"s.
- we now never expose bound nodes from partial matches in matchers that
  did not match in the end - this fixes a long-standing issue

FIXMEs:
- rename BoundNodesTreeBuilder to BoundNodesBuilder or
  BoundNodesSetBuilder, as we don't build a tree any more; this is out
  of scope for this change, though
- we're seeing some performance regressions (around 10%), but I expect
  some performance tuning will get that back, and it's easily worth
  the increase in expressiveness for now

llvm-svn: 184313
2013-06-19 15:42:45 +00:00
Sergey Matveev 7014179ccb [lsan] Prevent inlining of WipeStack().
llvm-svn: 184312
2013-06-19 15:39:13 +00:00
Rafael Espindola 02d0ec8e70 Remove Path::getDirectoryContents.
llvm-svn: 184311
2013-06-19 15:32:37 +00:00
Rafael Espindola 76993a01c9 Don't depend on PathV1.h including set.
llvm-svn: 184310
2013-06-19 15:31:27 +00:00
Reid Kleckner 7810af0a43 [ms-cxxabi] Emit and install appropriately mangled vbtables
In Itanium, dynamic classes have one vtable with several different
address points for dynamic base classes that can't share vtables.

In the MS C++ ABI, each vbtable that can't be shared gets its own
symbol, similar to how ctor vtables work in Itanium.  However, instead
of mangling the subobject offset into the symbol, the unique portions of
the inheritance path are mangled into the symbol to make it unique.

This patch implements the MSVC 2012 scheme for forming unique vbtable
symbol names.  MSVC 2010 use the same mangling with a different subset
of the path.  Implementing that mangling and possibly others is TODO.

Each vbtable is an array of i32 offsets from the vbptr that points to it
to another virtual base subobject.  The first entry of a vbtable always
points to the base of the current subobject, implying that it is the
same no matter which parent class contains it.

Reviewers: rjmccall

Differential Revision: http://llvm-reviews.chandlerc.com/D636

llvm-svn: 184309
2013-06-19 15:20:38 +00:00
Reid Kleckner 3793d5ed30 [Driver] Don't forward source file input args to gcc
gcc's inputs are already added by the InputInfoList passed to
Action::ConstructJob.

Fixes a regression from r183989.  This was manifesting when targetting
mingw as an extra input argument to gcc when assembling.  It presumably
affects other situations where clang calls gcc.

Prior to r183989, forwardToGCC() was returning false because the INPUT
option defined in OptParser.td had the DriverOption flag set on it.
LLVM's Option library does not set this flag for INPUT.

Reviewers: espindola

Differential Revision: http://llvm-reviews.chandlerc.com/D999

llvm-svn: 184308
2013-06-19 15:09:06 +00:00
James Molloy 4da7f88d2c Revert r184302 on Renato's behalf - it broke the bots and he's asked me to revert as he's unavailable.
llvm-svn: 184307
2013-06-19 15:03:14 +00:00
Rafael Espindola 3703fd0d6f Remove the 'R' modifier.
It is not present in GNU or OS X versions and doesn't make a lot of sense
for llvm-ar.

llvm-svn: 184306
2013-06-19 14:58:16 +00:00
Rafael Espindola 6d1e379158 Remove Path::isObjectFile.
llvm-svn: 184305
2013-06-19 14:25:38 +00:00
Alexander Kornienko 7285207486 Split long strings on word boundaries.
Summary: Split strings at word boundaries, when there are no spaces and slashes.

Reviewers: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1003

llvm-svn: 184304
2013-06-19 14:22:47 +00:00
Sergey Matveev dac35c24c0 [lsan] Move symbolization and reporting out of StopTheWorld callback.
llvm-svn: 184303
2013-06-19 14:04:11 +00:00
Renato Golin f86ae72e6d Adds support for openSUSE ARM v5/v7 triples.
Patch by İsmail Dönmez

llvm-svn: 184302
2013-06-19 14:03:51 +00:00
Howard Hinnant b076753454 Demangle objc mangling implemented in r184250
llvm-svn: 184301
2013-06-19 13:43:18 +00:00
Rafael Espindola 45f96f87c3 Fix pr16354.
We now reject things like

struct ABC {
  static double a;
};
register double ABC::a = 1.0;

llvm-svn: 184300
2013-06-19 13:41:54 +00:00
Andy Gibbs fa5026d9eb Silence 'set but not used' warning when building in release mode using gcc.
llvm-svn: 184299
2013-06-19 13:33:37 +00:00
Rafael Espindola 988252dcd2 Remove Path::canExecute.
llvm-svn: 184298
2013-06-19 13:25:31 +00:00
Rafael Espindola 8be5c0550e Use llvm::sys::fs::can_execute.
llvm-svn: 184297
2013-06-19 13:24:29 +00:00
Evgeniy Stepanov 49b4314cfd [sanitizer] Fix struct ifconf definition on Mac and restore the size checks.
llvm-svn: 184296
2013-06-19 13:21:38 +00:00
Sylvestre Ledru 6e0a254ec9 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
2013-06-19 12:59:56 +00:00
Alexander Potapenko 29b9fcf0a8 [ASan] Delete excessive 'extern "C"' around mlock* interceptors.
llvm-svn: 184294
2013-06-19 11:36:51 +00:00
Evgeniy Stepanov 41060fd728 [sanitizer] Fix Android build.
llvm-svn: 184293
2013-06-19 10:36:31 +00:00
Vladimir Medic c69605951f 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
2013-06-19 10:14:36 +00:00
NAKAMURA Takumi db1bf3fd2d MachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use std::string instead.
llvm-svn: 184291
2013-06-19 09:55:05 +00:00
Evgeniy Stepanov f9cfe76526 [sanitizer] Fix build on RHEL 6.3, 6.4.
linux/if_ppp.h is broken in certain kernels.

llvm-svn: 184290
2013-06-19 08:55:28 +00:00
Pavel Labath 963f91b3a2 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
2013-06-19 08:19:56 +00:00
Michael Gottesman a7cc1243cc Fixed comment typo that causes the given comment to actually make sense.
llvm-svn: 184286
2013-06-19 07:34:21 +00:00
NAKAMURA Takumi cb873b1fc9 Prune "\param InitialState" since it has not been introduced. [-Wdocumentation]
llvm-svn: 184285
2013-06-19 06:58:29 +00:00
NAKAMURA Takumi 9157b55c3c Fix a warning. [-Wunused-variable]
llvm-svn: 184284
2013-06-19 06:58:20 +00:00
NAKAMURA Takumi dc2e2fb9ce 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
2013-06-19 06:58:14 +00:00
Nadav Rotem e98da7f548 SLPVectorizer: vectorize compares and selects.
llvm-svn: 184282
2013-06-19 05:49:52 +00:00
Nadav Rotem 4f3224f3ed Document the return value and fix a typo.
llvm-svn: 184281
2013-06-19 05:47:33 +00:00
Jason Molenda 8359214427 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
2013-06-19 04:52:55 +00:00
Enrico Granata 5c47969350 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
2013-06-19 03:05:52 +00:00