summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PM] Separate the TargetLibraryInfo object from the immutable pass.Chandler Carruth2015-01-1537-110/+157
| | | | | | | | | | | | | | 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
* AST: alignof might be dependent because of alignment attributesDavid Majnemer2015-01-153-12/+46
| | | | | | | Dependent alignment attributes should make an alignof expression dependent as well. llvm-svn: 226156
* Hide some redundant AVX512 instructions from the asm parser, but force them ↵Craig Topper2015-01-151-1/+1
| | | | | | to show up in the disassembler. llvm-svn: 226155
* Rename InputGraph.h -> Node.h.Rui Ueyama2015-01-153-7/+7
| | | | llvm-svn: 226154
* Simplify.Rui Ueyama2015-01-151-7/+5
| | | | llvm-svn: 226153
* [CMake] clangCodeGen: Prune a redundant "Target" out of libdeps. It is ↵NAKAMURA Takumi2015-01-151-1/+0
| | | | | | supplied by Analysis. llvm-svn: 226152
* Add disassembler tests for mips64 platform. There are no functional changes.Vladimir Medic2015-01-153-0/+936
| | | | llvm-svn: 226151
* [ELF] Do not error on non-existent file in the driver.Rui Ueyama2015-01-152-45/+22
| | | | | | | 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
* Remove InputGraph and use std::vector<Node> instead.Rui Ueyama2015-01-1512-85/+39
| | | | | | In total we have removed more than 1000 lines! llvm-svn: 226149
* AST: Ensure implicit records have default visibilityDavid Majnemer2015-01-152-0/+14
| | | | | | | | | | | | | | | 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
* Rename InputElement Node.Rui Ueyama2015-01-1510-46/+39
| | | | | | | | | 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
* Remove InputGraph::addInputElement{,Front}.Rui Ueyama2015-01-157-25/+17
| | | | | | | | 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
* Remove WrapperNode.Rui Ueyama2015-01-157-47/+12
| | | | | | | WrapperNode was a useless subclass of FileNode. We should just use FileNode instead. llvm-svn: 226145
* Remove FileNode::parse.Rui Ueyama2015-01-154-83/+17
| | | | | | | FileNode::parse was just a forwarder to File::parse so we could remove that. Also removed dead code. llvm-svn: 226144
* Remove FileNode::getPath().Rui Ueyama2015-01-154-15/+6
| | | | | | | Previously both FileNode and File keep filename. This patch removed that redundancy. llvm-svn: 226143
* [CMake] Update libdeps on clangCodeGen, corresponding to r226079.NAKAMURA Takumi2015-01-151-0/+1
| | | | llvm-svn: 226142
* temporary commit.Rui Ueyama2015-01-151-20/+0
| | | | llvm-svn: 226141
* Remove InputGraph::size().Rui Ueyama2015-01-1511-27/+22
| | | | llvm-svn: 226140
* Simplify FileNode.Rui Ueyama2015-01-152-9/+5
| | | | | | | | 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
* SimplifyIndVar: Remove unused variableDavid Majnemer2015-01-151-3/+0
| | | | | | OtherOperandIdx is not used anymore, remove it to silence warnings. llvm-svn: 226138
* Merge SimpleFileNode with WrapperNode.Rui Ueyama2015-01-153-30/+13
| | | | llvm-svn: 226137
* [Mips] Define macros `__mips_isa_rev` in case of mips32r6/mips64r6 optionsSimon Atanasyan2015-01-152-0/+22
| | | | llvm-svn: 226136
* Sema: Recover when a function template is in an extern "C" blockDavid Majnemer2015-01-154-6/+16
| | | | llvm-svn: 226135
* Adjust to the new explicit debug metadataTobias Grosser2015-01-1510-72/+72
| | | | | | This fixes the outfall of r226048 llvm-svn: 226134
* [PECOFF] Remove an InputElement placeholder for the entry name.Rui Ueyama2015-01-154-37/+29
| | | | llvm-svn: 226133
* Re-commit r225766, r225767, r225769, r225814, r225816, r225829, and r225832.Rui Ueyama2015-01-1514-349/+114
| | | | | | | 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
* Remove unused parameter, followup to r179639. No behavior change.Nico Weber2015-01-154-6/+1
| | | | llvm-svn: 226128
* Attempt to fix a Linux buildbot.Rui Ueyama2015-01-151-1/+1
| | | | llvm-svn: 226127
* Update libdeps since TLI was moved from Target to Analysis in r226078.NAKAMURA Takumi2015-01-1510-10/+10
| | | | llvm-svn: 226126
* Reorder.NAKAMURA Takumi2015-01-151-1/+1
| | | | llvm-svn: 226125
* utils/release/tag.sh: fix -revision vs. -rc checkHans Wennborg2015-01-151-1/+1
| | | | llvm-svn: 226124
* Re-commit r225674: Convert other drivers to use WrapperNode.Rui Ueyama2015-01-1535-605/+305
| | | | | | | | 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
* Introduce llgoi, a REPL for GoPeter Collingbourne2015-01-1515-7/+701
| | | | | | | | | | 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
* Remove ASTConsumer::HandleVTable()'s bool parameter.Nico Weber2015-01-158-27/+17
| | | | | | | | | | | 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
* [PM] Clean up the TLI doxygen comments prior to refactoring this codeChandler Carruth2015-01-151-13/+19
| | | | | | for the new pass manager. llvm-svn: 226089
* Fix a little thinko in r226017 - the code to actually add the demangled name ↵Jim Ingham2015-01-151-4/+6
| | | | | | | | | | | | | 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
* Don't crash when we can't find a block for some reason, just try and do the ↵Greg Clayton2015-01-151-3/+5
| | | | | | | | right thing and fail gracefully. <rdar://problem/19196221> llvm-svn: 226087
* Revert "r226071 - [RegisterCoalescer] Remove copies to reserved registers"Hal Finkel2015-01-153-39/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Don't crash when we run into lexical block address range problems, just ↵Greg Clayton2015-01-151-19/+18
| | | | | | | | ignore the bad ranges and log an error message asking the user to file a bug. <rdar://problem/19021931> llvm-svn: 226085
* Modified LLDB to be able to lookup global variables by address.Greg Clayton2015-01-158-16/+156
| | | | | | | | | | | | 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
* PR13699: Include friend declarations in code completion results if they had aRichard Smith2015-01-152-3/+39
| | | | | | | | | prior visible declaration. Prefer to take template parameter names from the first declaration. Testcase from a patch by Francisco Lopes! llvm-svn: 226083
* Switch this header file to not hard-code Windows line endings.Chandler Carruth2015-01-151-68/+68
| | | | llvm-svn: 226081
* [PM] Update for LLVM r226078 which moved TargetLibraryInfo to theChandler Carruth2015-01-151-1/+1
| | | | | | Analysis library. llvm-svn: 226080
* [PM] Update for LLVM r226078 which moved TargetLibraryInfo to theChandler Carruth2015-01-151-1/+1
| | | | | | Analysis library. llvm-svn: 226079
* [PM] Move TargetLibraryInfo into the Analysis library.Chandler Carruth2015-01-1549-50/+50
| | | | | | | | | | | | | | | | 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
* Win64Exception.cpp: Try to fix crash for x64 EH. "Per" might be null there.NAKAMURA Takumi2015-01-151-1/+1
| | | | llvm-svn: 226077
* Fix build after r226068: cannot initialize 'int' with 'nullptr_t'Ed Maste2015-01-151-1/+1
| | | | llvm-svn: 226076
* Fix PR22222Sanjoy Das2015-01-153-117/+47
| | | | | | | | | | | 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
* Make sure that when a breakpoint is hit but its condition is not met,Jim Ingham2015-01-158-8/+60
| | | | | | | | | | 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
* [TableGen] Add support for negative immediates to AsmMatcherEmitterHal Finkel2015-01-151-0/+2
| | | | | | | | | | | | | | | | 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
OpenPOWER on IntegriCloud