| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The pass is really just a means of accessing a cached instance of the
TargetLibraryInfo object, and this way we can re-use that object for the
new pass manager as its result.
Lots of delta, but nothing interesting happening here. This is the
common pattern that is developing to allow analyses to live in both the
old and new pass manager -- a wrapper pass in the old pass manager
emulates the separation intrinsic to the new pass manager between the
result and pass for analyses.
llvm-svn: 226157
|
| |
|
|
|
|
|
| |
Dependent alignment attributes should make an alignof expression
dependent as well.
llvm-svn: 226156
|
| |
|
|
|
|
| |
to show up in the disassembler.
llvm-svn: 226155
|
| |
|
|
| |
llvm-svn: 226154
|
| |
|
|
| |
llvm-svn: 226153
|
| |
|
|
|
|
| |
supplied by Analysis.
llvm-svn: 226152
|
| |
|
|
| |
llvm-svn: 226151
|
| |
|
|
|
|
|
| |
This change makes it easy to write unit tests for the GNU driver.
No more "empty group" hack is needed. No change in functionality.
llvm-svn: 226150
|
| |
|
|
|
|
| |
In total we have removed more than 1000 lines!
llvm-svn: 226149
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Types composed with certain implicit record types would have their RTTI
marked as hidden because the implicit record type didn't have any
visibility.
This manifests itself as triggering false positives from tools like
clang's -fsantize=function feature. The RTTI for a function type's
return type wouldn't match if the return type was an implicit record
type.
Patch by Stephan Bergmann!
llvm-svn: 226148
|
| |
|
|
|
|
|
|
|
| |
InputElement was named that because it's an element of an InputGraph.
It's losing the origin because the InputGraph is now being removed.
InputElement's subclass is FileNode, that naming inconsistency needed
to be fixed.
llvm-svn: 226147
|
| |
|
|
|
|
|
|
| |
They were the last member functions of InputGraph (besides members()).
Now InputGraph is just a container of a vector. We are ready to replace
InputGraph with plain File vector.
llvm-svn: 226146
|
| |
|
|
|
|
|
| |
WrapperNode was a useless subclass of FileNode. We should just use
FileNode instead.
llvm-svn: 226145
|
| |
|
|
|
|
|
| |
FileNode::parse was just a forwarder to File::parse so we could remove that.
Also removed dead code.
llvm-svn: 226144
|
| |
|
|
|
|
|
| |
Previously both FileNode and File keep filename. This patch removed
that redundancy.
llvm-svn: 226143
|
| |
|
|
| |
llvm-svn: 226142
|
| |
|
|
| |
llvm-svn: 226141
|
| |
|
|
| |
llvm-svn: 226140
|
| |
|
|
|
|
|
|
| |
The member function was defined to allow subclasses to customize
error message. But since we only have one FileNode type, there's
no actual need for that.
llvm-svn: 226139
|
| |
|
|
|
|
| |
OtherOperandIdx is not used anymore, remove it to silence warnings.
llvm-svn: 226138
|
| |
|
|
| |
llvm-svn: 226137
|
| |
|
|
| |
llvm-svn: 226136
|
| |
|
|
| |
llvm-svn: 226135
|
| |
|
|
|
|
| |
This fixes the outfall of r226048
llvm-svn: 226134
|
| |
|
|
| |
llvm-svn: 226133
|
| |
|
|
|
|
|
| |
These changes depended on r225674 and had been rolled back in r225859.
Because r225674 has been re-submitted, it's safe to re-submit them.
llvm-svn: 226132
|
| |
|
|
| |
llvm-svn: 226128
|
| |
|
|
| |
llvm-svn: 226127
|
| |
|
|
| |
llvm-svn: 226126
|
| |
|
|
| |
llvm-svn: 226125
|
| |
|
|
| |
llvm-svn: 226124
|
| |
|
|
|
|
|
|
| |
The original commit had an issue with Mac OS dylib files. It didn't
handle fat binary dylib files correctly. This patch includes a fix.
A test for that case has already been committed in r225764.
llvm-svn: 226123
|
| |
|
|
|
|
|
|
|
|
| |
llgoi is a Go REPL based on llgo irgen and the LLVM JIT. It supports
expressions, statements, most declarations and imports, including binary
imports from the standard library and source imports from $GOPATH.
Differential Revision: http://reviews.llvm.org/D6957
llvm-svn: 226097
|
| |
|
|
|
|
|
|
|
|
|
| |
Sema calls HandleVTable() with a bool parameter which is then threaded through
three layers. The only effect of this bool is an early return at the last
layer.
Instead, remove this parameter and call HandleVTable() only if the bool is
true. No intended behavior change.
llvm-svn: 226096
|
| |
|
|
|
|
| |
for the new pass manager.
llvm-svn: 226089
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
to the Mangled object got
moved into the #else branch of the #if/#elif/#endif, so it wasn't getting done in the #if case anymore.
Keep the code to add the demangled name outside of the #if, and then just free the demangled_name
and set it back to NULL in the Windows case.
<rdar://problem/19479499>
llvm-svn: 226088
|
| |
|
|
|
|
|
|
| |
right thing and fail gracefully.
<rdar://problem/19196221>
llvm-svn: 226087
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reverting this while I investigate some bad behavior this is causing. As a
possibly-related issue, adding -verify-machineinstrs to one of the test cases
now fails because of this change:
llc test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll -march=x86-64 -o - -verify-machineinstrs
*** Bad machine code: No instruction at def index ***
- function: foo
- basic block: BB#0 return (0x10007e21f10) [0B;736B)
- liverange: [128r,128d:9)[160r,160d:8)[176r,176d:7)[336r,336d:6)[464r,464d:5)[480r,480d:4)[624r,624d:3)[752r,752d:2)[768r,768d:1)[78
4r,784d:0) 0@784r 1@768r 2@752r 3@624r 4@480r 5@464r 6@336r 7@176r 8@160r 9@128r
- register: %DS
Valno #3 is defined at 624r
*** Bad machine code: Live segment doesn't end at a valid instruction ***
- function: foo
- basic block: BB#0 return (0x10007e21f10) [0B;736B)
- liverange: [128r,128d:9)[160r,160d:8)[176r,176d:7)[336r,336d:6)[464r,464d:5)[480r,480d:4)[624r,624d:3)[752r,752d:2)[768r,768d:1)[78
4r,784d:0) 0@784r 1@768r 2@752r 3@624r 4@480r 5@464r 6@336r 7@176r 8@160r 9@128r
- register: %DS
[624r,624d:3)
LLVM ERROR: Found 2 machine code errors.
where 624r corresponds exactly to the interval combining change:
624B %RSP<def> = COPY %vreg16; GR64:%vreg16
Considering merging %vreg16 with %RSP
RHS = %vreg16 [608r,624r:0) 0@608r
updated: 608B %RSP<def> = MOV64rm <fi#3>, 1, %noreg, 0, %noreg; mem:LD8[%saved_stack.1]
Success: %vreg16 -> %RSP
Result = %RSP
llvm-svn: 226086
|
| |
|
|
|
|
|
|
| |
ignore the bad ranges and log an error message asking the user to file a bug.
<rdar://problem/19021931>
llvm-svn: 226085
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is done by adding a "Variable *" to SymbolContext and allowing SymbolFile::ResolveSymbolContext() so if an address is resolved into a symbol context, we can include the global or static variable for that address.
This means you can now find global variables that are merged globals when doing a "image lookup --verbose --address 0x1230000". Previously we would resolve a symbol and show "_MergedGlobals123 + 1234". But now we can show the global variable name.
The eSymbolContextEverything purposely does not include the new eSymbolContextVariable in its lookup since stack frame code does many lookups and we don't want it triggering the global variable lookups.
<rdar://problem/18945678>
llvm-svn: 226084
|
| |
|
|
|
|
|
|
|
| |
prior visible declaration. Prefer to take template parameter names from the
first declaration.
Testcase from a patch by Francisco Lopes!
llvm-svn: 226083
|
| |
|
|
| |
llvm-svn: 226081
|
| |
|
|
|
|
| |
Analysis library.
llvm-svn: 226080
|
| |
|
|
|
|
| |
Analysis library.
llvm-svn: 226079
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the term "Target" is in the name, it doesn't really have to do
with the LLVM Target library -- this isn't an abstraction which LLVM
targets generally need to implement or extend. It has much more to do
with modeling the various runtime libraries on different OSes and with
different runtime environments. The "target" in this sense is the more
general sense of a target of cross compilation.
This is in preparation for porting this analysis to the new pass
manager.
No functionality changed, and updates inbound for Clang and Polly.
llvm-svn: 226078
|
| |
|
|
| |
llvm-svn: 226077
|
| |
|
|
| |
llvm-svn: 226076
|
| |
|
|
|
|
|
|
|
|
|
| |
The bug was introduced in r225282. r225282 assumed that sub X, Y is
the same as add X, -Y. This is not correct if we are going to upgrade
the sub to sub nuw. This change fixes the issue by making the
optimization ignore sub instructions.
Differential Revision: http://reviews.llvm.org/D6979
llvm-svn: 226075
|
| |
|
|
|
|
|
|
|
|
| |
the hit count is not updated.
Also, keep the hit count for the breakpoint in the breakpoint. We were
using just the sum of the location's hit counts, but that was wrong since if a shared library is
unloaded, and the location goes away, the breakpoint hit count should not suddenly drop
by the number of hits there were on that location.
llvm-svn: 226074
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for creating an InstAlias with a negative immediate, i.e.:
def NOT : InstAlias<"not $dst, $src", (XORI GR32:$dst, GR32:$src, -1)>;
by resolving this problem:
RISCVGenAsmMatcher.inc:95:11: error: expected '= constant-expression' or end of enumerator definition
CVT_imm_-1,
^^^^^^^^^^
Patch by Jordy Potman, thanks!
llvm-svn: 226073
|