| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
expression within the object scope.
We were transforming the scope type of a pseudo-destructor expression
(e.g., the first T in x->T::~T()) as a freestanding type, which meant
that dependent template specialization types here would stay dependent
even when no template parameters were named. This would eventually
mean that a dependent expression would end up in what should be
fully-instantiated ASTs, causing IRgen to assert.
llvm-svn: 176723
|
| |
|
|
| |
llvm-svn: 176722
|
| |
|
|
|
|
|
|
|
| |
The getOperandPtr utility already bounds checks, but allows one-off-the-end.
This assert should catch the cases that could previously have been dereferencing
these one-off-the-end pointer. Happily, no cases of this came up with this
change.
llvm-svn: 176721
|
| |
|
|
| |
llvm-svn: 176720
|
| |
|
|
|
|
|
|
|
| |
parsing on the file name it gets. That confuses
it if there are spaces in the file name.
<rdar://problem/13380392>
llvm-svn: 176719
|
| |
|
|
|
|
| |
(this code needs to be pushed up so that in the basic scenarios TestCase knows to dump all its measurements directly)
llvm-svn: 176718
|
| |
|
|
|
|
| |
the filename of the PCH file.
llvm-svn: 176717
|
| |
|
|
|
|
|
|
|
|
|
| |
return a value.
Possible values are:
1 : if a parameter was invalid
-1 : if the callback returned CXVisit_Break,
otherwise returns 0.
llvm-svn: 176716
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a very basic implementation of a library that easily allows to drive LLDB.framework to write test cases for performance
This is separate from the LLDB testsuite in test/ in that:
a) this uses C++ instead of Python to avoid measures being affected by SWIG
b) this is in very early development and needs lots of tweaking before it can be considered functionally complete
c) this is not meant to test correctness but to help catch performance regressions
There is a sample application built against the library (in darwin/sketch) that uses the famous sample app Sketch as an inferior to measure certain basic parameters of LLDB's behavior.
The resulting output is a PLIST much like the following:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>fetch-frames</key>
<real>0.13161715522222225</real>
</dict>
<dict>
<key>file-line-bkpt</key>
<real>0.029111678750000002</real>
</dict>
<dict>
<key>fetch-modules</key>
<real>0.00026376766666666668</real>
</dict>
<dict>
<key>fetch-vars</key>
<real>0.17820429311111111</real>
</dict>
<dict>
<key>run-expr</key>
<real>0.029676525769230768</real>
</dict>
</array>
</plist>
Areas for improvement:
- code cleanups (I will be out of the office for a couple days this coming week, but please keep ideas coming!)
- more metrics and test cases
- better error checking
This toolkit also comprises a simple event-loop-driven controller for LLDB, similar yet much simpler to what the Driver does to implement the lldb command-line tool.
llvm-svn: 176715
|
| |
|
|
|
|
|
|
|
|
|
|
| |
counters for a variety of metrics associated
with expression parsing. This should give some
idea of how much work the expression parser is
doing on Clang's behalf, and help with hopefully
reducing that load over time.
<rdar://problem/13210748> Audit type search/import for expressions
llvm-svn: 176714
|
| |
|
|
|
|
|
| |
There are no python modules in clang-tools-extra so a link to this
auto-generated page, which currently isn't generated anyway, is not necessary.
llvm-svn: 176713
|
| |
|
|
|
|
| |
Turned on doxygen warnings and fixed the resulting problems.
llvm-svn: 176712
|
| |
|
|
|
|
| |
patch fixes it. This fixes http://llvm.org/bugs/show_bug.cgi?id=15445.
llvm-svn: 176711
|
| |
|
|
|
|
|
|
|
| |
1. We now ignore all non-default string literals, including raw
literals.
2. We do not break inside escape sequences any more.
FIXME: We still break in trigraphs.
llvm-svn: 176710
|
| |
|
|
|
|
|
| |
Since no_xform is not a bug to be fixed, made the test pass using the 'not'
utility and removed XFAIL.
llvm-svn: 176709
|
| |
|
|
|
|
|
| |
Clearly, this function is never actually called with the last
instruction in the function.
llvm-svn: 176708
|
| |
|
|
|
|
|
|
| |
This pass hasn't been touched in two years & would fail with assertions against
the current debug info metadata format (the only test case for it still uses a
many-versions old debug info metadata format)
llvm-svn: 176707
|
| |
|
|
|
|
|
|
|
| |
To find the last use of a register unit, start from the bottom and scan
upwards until a user is found.
<rdar://problem/13353090>
llvm-svn: 176706
|
| |
|
|
|
|
| |
No test case, spotted by inspection.
llvm-svn: 176705
|
| |
|
|
| |
llvm-svn: 176704
|
| |
|
|
| |
llvm-svn: 176703
|
| |
|
|
| |
llvm-svn: 176702
|
| |
|
|
|
|
|
|
| |
domination.
Fixes PR15344.
llvm-svn: 176701
|
| |
|
|
|
|
|
|
| |
fold selectcc (selectcc x, y, a, b, cc), b, a, b, setne ->
selectcc x, y, a, b, cc
Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176700
|
| |
|
|
|
|
|
|
|
| |
Two changes:
1. Prefer SET* instructions when possible
2. Handle the CND*_INT case with floating-point args
Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176699
|
| |
|
|
|
| |
Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176698
|
| |
|
|
|
| |
Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176697
|
| |
|
|
|
| |
Reviewed-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176696
|
| |
|
|
| |
llvm-svn: 176695
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
LegalizeDAG.cpp uses the value of the comparison operands when checking
the legality of BR_CC, so DAGCombiner should do the same.
v2:
- Expand more BR_CC value types for NVPTX
v3:
- Expand correct BR_CC value types for Hexagon, Mips, and XCore.
llvm-svn: 176694
|
| |
|
|
|
|
|
| |
AddressSpace definition has changed in a previous commit, reflect it
to avoid false failure.
llvm-svn: 176693
|
| |
|
|
| |
llvm-svn: 176692
|
| |
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
llvm-svn: 176691
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The loop convert tests for conflicting names have been extended to check for
macro names, types, and language keywords including language extensions. Tests
have also been added.
Fixes PR15322
Author: Jack Yang <jack.yang@intel.com>
Reviewer: gribozavr, klimek, revane
llvm-svn: 176690
|
| |
|
|
| |
llvm-svn: 176689
|
| |
|
|
|
|
| |
Patch based on Mans Rullgard's.
llvm-svn: 176688
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is certainly not the last word on scheduling for this target, but
right now this allows a few apps to run / finish with radeonsi, most
notably UT2004 / Lightsmark. They fail to compile some shaders with the
default scheduler because it ends up trying to spill registers, which
we don't support yet (and which is probably a bad idea in general for
performance if it can be avoided).
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176687
|
| |
|
|
|
|
| |
Patch by Murat Bolat!
llvm-svn: 176686
|
| |
|
|
|
|
|
|
|
|
| |
This verifies live intervals both before and after scheduling. It's
useful for anyone hacking on live interval update.
Note that we don't yet pass verification all the time. We don't yet
handle updating nonallocatable live intervals perfectly.
llvm-svn: 176685
|
| |
|
|
|
|
|
|
| |
to the other armv7 types as far as compatibility/interchangability
goes.
<rdar://problem/13361372>
llvm-svn: 176684
|
| |
|
|
|
|
| |
Fixed error where objective C methods with selectors names starting with ".cxx_" where causing errors for ARC built binaries.
llvm-svn: 176683
|
| |
|
|
|
|
|
|
|
| |
all #import/#include directives in a specific file.
It passes to the visitor, that the caller provides, CXCursor_InclusionDirective cursors for
all the include directives in a particular file.
llvm-svn: 176682
|
| |
|
|
|
|
| |
stop visitation if it returns CXVisit_Break.
llvm-svn: 176681
|
| |
|
|
| |
llvm-svn: 176680
|
| |
|
|
| |
llvm-svn: 176679
|
| |
|
|
|
|
|
| |
Not sure why these aren't failing on my linux machine, but this should cover
it.
llvm-svn: 176678
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code generation makes some basic assumptions about the IR it's been given. In
particular, if there is only one 'invoke' in the function, then that invoke
won't be going away. However, with the advent of the `llvm.donothing' intrinsic,
those invokes may go away. If all of them go away, the landing pad no longer has
any users. This confuses the back-end, which asserts.
This happens with SjLj exceptions, because that's the model that modifies the IR
based on there being invokes, etc. in the function.
Remove any invokes of `llvm.donothing' during SjLj EH preparation. This will
give us a CFG that the back-end won't be confused about. If all of the invokes
in a function are removed, then the SjLj EH prepare pass won't insert the bogus
code the relies upon the invokes being there.
<rdar://problem/13228754&13316637>
llvm-svn: 176677
|
| |
|
|
|
|
|
|
| |
Make dynamic type detection faster by using the AST metadata to help out and allow us not to complete types when we don't need to.
After running "purge" on a MacOSX system, the Xcode variables view now populates more than 3x faster with this fix.
llvm-svn: 176676
|
| |
|
|
|
|
| |
GCC was the system compiler on the mac.
llvm-svn: 176675
|
| |
|
|
|
|
| |
<rdar://problem/13361372>
llvm-svn: 176674
|