summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Expose diagnostic info to usersAndreas Simbuerger2014-05-241-0/+7
| | | | llvm-svn: 209575
* ScopDetection: Support keep-goingAndreas Simbuerger2014-05-242-5/+20
| | | | | | | | | | | Support a 'keep-going' mode for the ScopDetection. In this mode, we just keep on detecting, even if we encounter an error. This is useful for diagnosing SCoP candidates. Sometimes you want all the errors. Invalid SCoPs will still be refused in the end, we just refuse to abort on the first error. llvm-svn: 209574
* Substitue LastError & InvalidRegions with RejectLogsAndreas Simbuerger2014-05-242-14/+6
| | | | | | | Use the new ScopDetectionDiagnostics to implement the same functionality. llvm-svn: 209573
* Store all RejectReasons that occurred in a log.Andreas Simbuerger2014-05-243-6/+62
| | | | | | | | | | | This stores all RejectReasons created for one region in a RejectLog inside the DetectionContext. For now this only keeps track of the last error. A separate patch will enable the tracking of all errors. This patch itself does no harm (yet). llvm-svn: 209572
* Split implementation from ScopDetectionDiagnostic.hAndreas Simbuerger2014-05-243-129/+257
| | | | | | | We don't want the Statistic variables in every module that includes the diagnostics. llvm-svn: 209571
* llvm/test/Object/ar-error.test: Don't check the message "No such file or ↵NAKAMURA Takumi2014-05-241-1/+2
| | | | | | | | directory". It didn't match on non-English version of Windows. llvm-svn: 209570
* clang-tools-extra/test/clang-tidy/line-filter.cpp: Tweak line-filter.NAKAMURA Takumi2014-05-241-1/+1
| | | | | | | On win32, %s is expanded to X:\path\to\test\line-filter.cpp. It was incompatible to yaml. Although "%/s" could be available in Lit, ClangTidyDiagnosticConsumer::passesLineFilter() is unaware of comparision between '/' and '\\'. llvm-svn: 209569
* Implement sext(C1 + C2*X) --> sext(C1) + sext(C2*X) andMichael Zolotukhin2014-05-242-0/+210
| | | | | | | | | | | sext{C1,+,C2} --> sext(C1) + sext{0,+,C2} transformation in Scalar Evolution. That helps SLP-vectorizer to recognize consecutive loads/stores. <rdar://problem/14860614> llvm-svn: 209568
* CXXInfo memory should be released after calling the destructorYaron Keren2014-05-241-1/+1
| | | | | | | instead of before. The wrong order had no effect since Deallocate() does nothing right now, but we may replace allocator in the future. llvm-svn: 209567
* ARM64: extract a 32-bit subreg when selecting an inreg extendTim Northover2014-05-242-12/+154
| | | | | | | | After the load/store refactoring, we were sometimes trying to feed a GPR64 into a 32-bit register offset operand. This failed in copyPhysReg. llvm-svn: 209566
* This test doesn't need -O2 -disable-llvm-optznsHans Wennborg2014-05-231-1/+1
| | | | | | | | I forgot to fix this one in r209145. We use these flags on dllimport tests to make sure we emit code for available_externaly functions and don't inline the IR. llvm-svn: 209564
* Add a lock ivar to the Platform so that multiple TargetsJason Molenda2014-05-232-3/+9
| | | | | | | | trying to populate the list of trap handler names at the same time don't conflict with one another. <rdar://problem/17011969> llvm-svn: 209563
* Remove some unnecessary comments from previous check-in.Todd Fiala2014-05-231-51/+47
| | | | | | | | | | | Removed a "done" TODO comment. Moved some helper methods to the top of the unit test. Removed some commented out code I was considering implementing before I came up with a better overall approach. llvm-svn: 209561
* Added gdb remote tests to verify $Hg{thread-id}.Todd Fiala2014-05-234-7/+215
| | | | | | | | | | | | | | | | | | | | | Added test to check that each thread reported by $q{f,s}ThreadInfo can be switched to by $Hg, verified by a follow-up $qC. Modified test exe to accept "thread:new" to create a new thread that runs and sleeps for 5 seconds. @llgs_test/@debugserver_test now buffer output. llgs and debugserver gdbremote protocol tests now collect $O notification output into the context returned from expect_lldb_gdbserver_replay. context["O_count"] is an integer indicating the number of $O packets collected during the replay, and context["O_content"] contains the accumulated hex-decoded text output by the inferior (stdout and stderr). Modified the $O check test to check the accumulated output rather than a direct $O packet. llvm-svn: 209560
* Recommit r209532 with -ffreestanding.Akira Hatanaka2014-05-231-0/+13
| | | | | | This is a test case for r209489. llvm-svn: 209559
* Remove test while I investigate why the test is breaking the bots.Akira Hatanaka2014-05-231-14/+0
| | | | llvm-svn: 209558
* Recompute the injected class name type for a class template specializationRichard Smith2014-05-232-5/+1
| | | | | | rather than saving and restoring it. llvm-svn: 209557
* XFAIL test which is breaking some of the build bots.Akira Hatanaka2014-05-231-0/+1
| | | | llvm-svn: 209556
* Use comdats to avoid double initialization of weak dataReid Kleckner2014-05-238-51/+78
| | | | | | | | | | | | | | | | | Initializers of global data that can appear multiple TUs (static data members of class templates or __declspec(selectany) data) are now in a comdat group keyed on the global variable being initialized. On non-Windows platforms, this is a code size and startup time optimization. On Windows, this is necessary for ABI compatibility with MSVC. Fixes PR16959. Reviewers: rsmith Differential Revision: http://reviews.llvm.org/D3811 llvm-svn: 209555
* DebugInfo: Generalize some tests to handle variations in attribute ordering.David Blaikie2014-05-2312-58/+73
| | | | | | | | | | | | | | | | In an effort to fix inlined debug info in situations where the out of line definition of a function preceeds any inlined usage, the order in which some attributes are added to subprogram DIEs may change. (in essence, definition-necessary attributes like DW_AT_low_pc/high_pc will be added immediately, but the names, types, and other features will be delayed to module end where they may either be added to the subprogram DIE or instead reference an abstract definition for those values) These tests can be generalized to be resilient to this change. 5 or so tests actually have to be incompatibly changed to cope with this reordering and will go along with the change that affects the order. llvm-svn: 209554
* DebugInfo: Generalize a test case to not depend on abbreviation numbering.David Blaikie2014-05-231-8/+8
| | | | | | | It's an unnecessary detail for this test and just gets in the way when making unrelated changes to the output in this test. llvm-svn: 209553
* [modules] If a referenced-but-not-instantiated class template specializationRichard Smith2014-05-234-18/+12
| | | | | | | | | | gets explicitly specialized, don't reuse the previous class template specialization declaration as a new declaration. The benefit here is fairly marginal, it harms source fidelity, and this is horrible to model if the specialization was imported from another module (without this change, it asserts or worse). llvm-svn: 209552
* Test case comments. Fix sloppiness.Andrew Trick2014-05-231-2/+2
| | | | llvm-svn: 209551
* clang-format function.Rafael Espindola2014-05-231-8/+6
| | | | llvm-svn: 209550
* Emit used/dllexport inline method definitions in nested classes (PR19743, ↵Hans Wennborg2014-05-2310-13/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR11170) The previous code that was supposed to handle this didn't work since parsing of inline method definitions is delayed to the end of the outer class definition. Thus, when HandleTagDeclDefinition() got called for the inner class, the inline functions in that class had not been parsed yet. Richard suggested that the way to do this is by handling inline method definitions through a new ASTConsumer callback. I really wanted to call ASTContext::DeclMustBeEmitted() instead of checking for attributes, but doing that causes us to compute linkage, and then we fail with "error: unsupported: typedef changes linkage of anonymous type, but linkage was already computed" on tests like this: (from SemaCXX/undefined-internal.cpp) :-/ namespace test7 { typedef struct { void bar(); void foo() { bar(); } } A; } Differential Revision: http://reviews.llvm.org/D3809 llvm-svn: 209549
* Remove a confusing use of a static method.Rafael Espindola2014-05-231-1/+1
| | | | | | No functionality change. llvm-svn: 209548
* DebugInfo: Put concrete definitions referencing abstract definitions in the ↵David Blaikie2014-05-232-1/+95
| | | | | | | | | | | | | | | | | | | same scope as the abstract definition. This seems like a simple cleanup/improved consistency, but also helps lay the foundation to fix the bug mentioned in the test case: concrete definitions preceeding any inlined usage aren't properly split into concrete + abstract (because they're not known to need it until it's too late). Once we start deferring this choice until later, we won't have the choice to put concrete definitions for inlined subroutines in a different scope from concrete definitions for non-inlined subroutines (since we won't know at time-of-construction which one it'll be). This change brings those two cases into alignment ahead of that future chaneg/fix. llvm-svn: 209547
* Don't suppress warning about dllimport on typedefs etc. in MicrosoftExt modeHans Wennborg2014-05-233-31/+1
| | | | | | | | | | | | | | | | | It's true the MSVC doesn't warn about dllimport when applied to e.g. a typedef, but that applies to dllexport too. I'd like us to be consistent, and I think the right thing to do is to warn. The original test that came with implementing the old behaviour doesn't provide a good motivation, and it said it was checking that we're not repoting an *error*, which is still true since this is just a warning. There are plenty of tests e.g. in Sema/dllimport.c to check that we do warn about dllimport on non functions or variables. Differential Revision: http://reviews.llvm.org/D3832 llvm-svn: 209546
* Fix and improve SCEV ComputeBackedgeTankCount.Andrew Trick2014-05-232-19/+102
| | | | | | | | | | | | | This is a follow-up to r209358: PR19799: Indvars miscompile due to an incorrect max backedge taken count from SCEV. That fix was incomplete as pointed out by Arnold and Michael Z. The code was also too confusing. It needed a careful rewrite with more unit tests. This version will also happen to optimize more cases. <rdar://17005101> PR19799: Indvars miscompile... llvm-svn: 209545
* Revert part of "Fix broken FileCheck prefixes"Nico Rieck2014-05-232-11/+11
| | | | | | This reverts part of commit r209538. llvm-svn: 209544
* Use alias linkage and visibility to decide tls access mode.Rafael Espindola2014-05-233-16/+13
| | | | | | | | | | | | | | | | | This matches both what we do for the non-thread case and what gcc does. With this patch clang would match gcc's behaviour in static __thread int a = 42; extern __thread int b __attribute__((alias("a"))); int *f(void) { return &a; } int *g(void) { return &b; } if not for pr19843. Manually writing the IL does produce the same access modes. It is also a step in the direction of fixing pr19844. llvm-svn: 209543
* Sema: Add more tests for dll attributes on inline functionsNico Rieck2014-05-234-2/+76
| | | | llvm-svn: 209542
* Fix broken FileCheck prefixNico Rieck2014-05-231-1/+1
| | | | llvm-svn: 209541
* Fix typoNico Rieck2014-05-231-1/+1
| | | | llvm-svn: 209540
* Remove unused CHECK linesNico Rieck2014-05-231-4/+0
| | | | llvm-svn: 209539
* Fix broken FileCheck prefixesNico Rieck2014-05-235-14/+14
| | | | llvm-svn: 209538
* Add the extracted constant offset using GEPJingyue Wu2014-05-233-39/+80
| | | | | | | | | | | | | Fixed a TODO in r207783. Add the extracted constant offset using GEP instead of ugly ptrtoint+add+inttoptr. Using GEP simplifies future optimizations and makes IR easier to understand. Updated all affected tests, and added a new test in split-gep.ll to cover a corner case where emitting uglygep is necessary. llvm-svn: 209537
* [RuntimeDyld] Remove relocation bounds check introduced in r208375 (MachO only).Lang Hames2014-05-231-4/+1
| | | | | | | | | | | | | | | | | | | We do all of our address arithmetic in 64-bit, and operations involving logically negative 32-bit offsets (actually represented as unsigned 64 bit ints) often overflow into higher bits. The overflow check could be preserved by casting to uint32 at the callsite for applyRelocationValue, but this would eliminate the value of the check. The right way to handle overflow in relocations is to make relocation processing target specific, and compute the values for RelocationEntry objects in the appropriate types (32-bit for 32-bit targets, 64-bit for 64-bit targets). This is coming as part of the cleanup I'm working on. This fixes another i386 regression test. <rdar://problem/16889891> llvm-svn: 209536
* Stopgap fix for finding module for a file mapped in the VFSBen Langmuir2014-05-2312-4/+123
| | | | | | | | | | | | | | | | If we lookup a path using its 'real' path first, we need to ensure that when we run header search we still use the VFS-mapped path or we will not be able to find the corresponding module for the header. The real problem is that we tie the name of a file to its underlying FileEntry, which is uniqued by inode, so we only ever get the first name it is looked up by. This doesn't work with modules, which rely on a specific file system structure. I'm hoping to have time to write up a proposal for fixing this more permanently soon, but as a stopgap this patch updates the name of the file's directory if it comes from a VFS mapping. llvm-svn: 209534
* Add the hasRangeInit() matcher for range-based for loop.Manuel Klimek2014-05-232-0/+17
| | | | llvm-svn: 209533
* Test case for r209489.Akira Hatanaka2014-05-231-0/+13
| | | | llvm-svn: 209532
* Make dead return statement detection more robust against changes in the CFG.Manuel Klimek2014-05-231-21/+46
| | | | | | | | | | | | This change is a precondition to the proposed change to handle temporary dtors correctly. The idea is to explicitly search for the next return that doesn't have other paths into it (that is, if the current block is dead, the block containing the return must be dead, too). Thus, introducing non-control-flow block transitions will not break the logic. llvm-svn: 209531
* Make the ParentVector default to size 2.Manuel Klimek2014-05-231-1/+1
| | | | | | | As Jordan noted, it makes more sense when we store it in the ParentMap, and doesn't really make a difference when we return it from getParents. llvm-svn: 209530
* Add FIXME comment based on code review feedback by Hal Finkel on r209338David Blaikie2014-05-231-0/+2
| | | | llvm-svn: 209529
* Convert test to use FileCheck.Rafael Espindola2014-05-231-1/+5
| | | | llvm-svn: 209528
* revert "r209526 List the function/method name in the index page of scan-build "Sylvestre Ledru2014-05-232-17/+3
| | | | | | Depends on http://reviews.llvm.org/D3762 llvm-svn: 209527
* List the function/method name in the index page of scan-build Sylvestre Ledru2014-05-232-3/+17
| | | | llvm-svn: 209526
* [MS-ABI] Silence warning from r209523Warren Hunt2014-05-231-1/+1
| | | | | | no functional change. llvm-svn: 209525
* Replace system() by native perl callsSylvestre Ledru2014-05-232-12/+14
| | | | llvm-svn: 209524
* [MS-ABI] Implements MS-compatible RTTIWarren Hunt2014-05-239-47/+656
| | | | | | | | | | | | | Enables the emission of MS-compatible RTTI data structures for use with typeid, dynamic_cast and exceptions. Does not implement dynamic_cast or exceptions. As an artiface, typeid works in some cases but proper support an testing will coming in a subsequent patch. majnemer has fuzzed the results. Test cases included. Differential Revision: http://reviews.llvm.org/D3833 llvm-svn: 209523
OpenPOWER on IntegriCloud