summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Comment only: Annotate loop as per mailing list discussionJean-Luc Duprat2014-08-291-0/+3
| | | | llvm-svn: 216798
* Make isValidMCLOHType take unsigned instead of enum to avoid loading invalid ↵Alexey Samsonov2014-08-292-4/+3
| | | | | | enum values llvm-svn: 216797
* Add some missing test coverage for merging 'extern "C"' functions with modules.Richard Smith2014-08-295-0/+15
| | | | llvm-svn: 216796
* Next bit of support for llvm-objdump’s -private-headers for Mach-O files.Kevin Enderby2014-08-292-3/+587
| | | | | | | This adds the printing of the LC_SEGMENT load command and sections, LC_SYMTAB and LC_DYSYMTAB load commands. llvm-svn: 216795
* AArch64: Silence -Wabsolute-value warning with std::absReid Kleckner2014-08-291-1/+2
| | | | llvm-svn: 216794
* Speculative build fix for const, gcc, and ArrayRef overloadsReid Kleckner2014-08-291-3/+3
| | | | llvm-svn: 216793
* Revert accidentally committed patches r216787-r216789David Blaikie2014-08-292-29/+9
| | | | | | | | | | Rushed when I realized I hadn't committed the FreeDeleter for a clang change I'd committed, and didn't check that I had things lying around in my client. Apologies for the noise. llvm-svn: 216792
* Fix my broken test cases.Reid Kleckner2014-08-292-25/+5
| | | | llvm-svn: 216791
* Add a trivial functor for use with unique_ptrs managing memory that needs to ↵David Blaikie2014-08-291-0/+6
| | | | | | be freed rather than deleted. llvm-svn: 216790
* Omit DW_AT_artificial, DW_AT_external, and similar attributes under -gmltDavid Blaikie2014-08-291-0/+3
| | | | llvm-svn: 216789
* Omit dwarf::DW_AT_frame_base under -gmltDavid Blaikie2014-08-291-3/+6
| | | | llvm-svn: 216788
* StuffDavid Blaikie2014-08-291-6/+20
| | | | llvm-svn: 216787
* unique_ptrify PTHManager's PerIDCache using the newly added llvm::FreeDeleterDavid Blaikie2014-08-292-16/+15
| | | | llvm-svn: 216786
* unique_ptrify some parameters to PTHManager::PTHManagerDavid Blaikie2014-08-292-42/+45
| | | | | | | | | A couple of these arguments were passed by void* as a rather extreme example of pimpling. Adjusting this to a more classic form of the idiom (involving forward declarations) makes this more legible and allows explicit passing of ownership via std::unique_ptr. llvm-svn: 216785
* Fix typos in comments, NFCRobin Morisset2014-08-2925-28/+26
| | | | | | | | | | | | | | Summary: Just fixing comments, no functional change. Test Plan: N/A Reviewers: jfb Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D5130 llvm-svn: 216784
* Fixup for r216763. Add a driver test.Anna Zaks2014-08-291-0/+1
| | | | llvm-svn: 216783
* Make all virtual member pointers use variadic musttail callsReid Kleckner2014-08-297-84/+224
| | | | | | | | | This avoids encoding information about the function prototype into the thunk at the cost of some function prototype bitcast gymnastics. Fixes PR20653. llvm-svn: 216782
* Add a const and munge some commentsReid Kleckner2014-08-292-4/+6
| | | | llvm-svn: 216781
* musttail: Forward regparms of variadic functions on x86_64Reid Kleckner2014-08-295-71/+288
| | | | | | | | | | | | | | | | | | | | | | Summary: If a variadic function body contains a musttail call, then we copy all of the remaining register parameters into virtual registers in the function prologue. We track the virtual registers through the function body, and add them as additional registers to pass to the call. Because this is all done in virtual registers, the register allocator usually gives us good code. If the function does a call, however, it will have to spill and reload all argument registers (ew). Forwarding regparms on x86_32 is not implemented because most compilers don't support varargs in 32-bit with regparms. Reviewers: majnemer Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D5060 llvm-svn: 216780
* Verifier: Don't reject varargs callee cleanup functionsReid Kleckner2014-08-294-12/+83
| | | | | | | | | | | | | | | | | | We've rejected these kinds of functions since r28405 in 2006 because it's impossible to lower the return of a callee cleanup varargs function. However there are lots of legal ways to leave such a function without returning, such as aborting. Today we can leave a function with a musttail call to another function with the correct prototype, and everything works out. I'm removing the verifier check declaring that a normal return from such a function is UB. Reviewed By: nlewycky Differential Revision: http://reviews.llvm.org/D5059 llvm-svn: 216779
* Fix for PR20660, where unexpanded parameter pack in function parameter ↵Larisse Voufo2014-08-293-7/+64
| | | | | | clause causes clang to crash. llvm-svn: 216778
* Add a comment, no functional change.Nico Weber2014-08-291-1/+1
| | | | llvm-svn: 216777
* Remove spurious mask operations from AArch64 add->compares on 16 and 8 bit ↵Louis Gerbarg2014-08-292-0/+532
| | | | | | | | | | | | | | | | | | | | | | | | | | values This patch checks for DAG patterns that are an add or a sub followed by a compare on 16 and 8 bit inputs. Since AArch64 does not support those types natively they are legalized into 32 bit values, which means that mask operations are inserted into the DAG to emulate overflow behaviour. In many cases those masks do not change the result of the processing and just introduce a dependent operation, often in the middle of a hot loop. This patch detects the relevent DAG patterns and then tests to see if the transforms are equivalent with and without the mask, removing the mask if possible. The exact mechanism of this patch was discusses in http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-July/074444.html There is a reasonably good chance there are missed oppurtunities due to similiar (but not identical) DAG patterns that could be funneled into this test, adding them should be simple if we see test cases. Tests included. rdar://13754426 llvm-svn: 216776
* X86: Fix conflict over ESI between base register and rep;movslReid Kleckner2014-08-293-6/+136
| | | | | | | | | | | | | | The new solution is to not use this lowering if there are any dynamic allocas in the current function. We know up front if there are dynamic allocas, but we don't know if we'll need to create stack temporaries with large alignment during lowering. Conservatively assume that we will need such temporaries. Reviewed By: hans Differential Revision: http://reviews.llvm.org/D5128 llvm-svn: 216775
* another typoSanjay Patel2014-08-291-1/+1
| | | | llvm-svn: 216774
* typoSanjay Patel2014-08-291-1/+1
| | | | llvm-svn: 216773
* [PECOFF] Fix AMD64_REL_[1-5] and AMD64_SECTION relocationsRui Ueyama2014-08-295-177/+84
| | | | | | | | | | | | | | | | | | | | | | | | I hope this is the last fix for x64 relocations as I've wasted a few days on this. This caused a mysterious issue that some C++ programs crash on startup. It was because a null pointer is passed as argv to main. __tmainCRTStartup calls main, but before that it calls all initialization routines between .text$xc_a and .text$xc_z. pre_cpp_init is one of such routines, and it is the one who initializes a heap pointer for argv for later use. That routine was not called for some reason. It turned out that __tmainCRTStartup was skipping a block of code because of the relocation bug. A condition in the function depends on a memory load, and that memory load was referring a wrong location. As a result a jump instruction took the wrong branch, skipping pre_cpp_init and so on. This patch fixes the issue. Also added more tests to fix them once and for all. llvm-svn: 216772
* Relax the constraint more in MemoryDependencyAnalysis.cppRobin Morisset2014-08-293-64/+147
| | | | | | | | Even loads/stores that have a stronger ordering than monotonic can be safe. The rule is no release-acquire pair on the path from the QueryInst, assuming that the QueryInst is not atomic itself. llvm-svn: 216771
* Fix a test broken by r216564.Todd Fiala2014-08-291-4/+6
| | | | | | | | | | | | | | llgs Linux is no longer doing the translation to some gdb fixed signal numbers. This change modifies the test method to take in the signo expected for a segfault. The debugserver test uses the fixed gdb number, and everything else uses signal.SIGSEGV for the platform. Sidenote: I somehow did not see this reported in multicore tests. I will need to verify that we aren't missing test failures in that script. I need to verify why this wasn't more obvious with test/dosep.py. llvm-svn: 216770
* Objective-C [qoi]. If property is going to be implementedFariborz Jahanian2014-08-293-7/+22
| | | | | | | | in the super class, do not issue the warning about property in current class's protocol will not be auto synthesized. // rdar://18179833 llvm-svn: 216769
* [X86] Refactor X86ISelDAGToDAG::SelectAtomicLoadArith - NFCRobin Morisset2014-08-291-10/+17
| | | | | | | | | | | | | | | | | | | Summary: Mostly renaming the (not very explicit) variables Tmp0, .. Tmp4, and grouping related statements together, along with a few lines of comments for the surprising parts. No functional change intended. Test Plan: make check-all Reviewers: jfb Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5088 llvm-svn: 216768
* unique_ptrify the raw_ostream argument to clang::serialized_diags::createDavid Blaikie2014-08-293-13/+13
| | | | llvm-svn: 216767
* lldb - fix misleading "valid target indexes are" error messageTodd Fiala2014-08-291-3/+10
| | | | | | | | See http://reviews.llvm.org/D4430 for more details. Change by Paul Osmialowski. llvm-svn: 216766
* unique_ptrify clang::ento::createCheckerManagerDavid Blaikie2014-08-293-22/+15
| | | | llvm-svn: 216765
* unique_ptrify PathDiagnosticConsumer::HandlePathDiagnosticDavid Blaikie2014-08-293-9/+8
| | | | | | | FoldingSet, another intrusive data structure that could use some unique_ptr love on its interfaces. Eventually. llvm-svn: 216764
* Add an option to silence all analyzer warnings.Anna Zaks2014-08-297-2/+36
| | | | | | | | | | | | People have been incorrectly using "-analyzer-disable-checker" to silence analyzer warnings on a file, when analyzing a project. Add the "-analyzer-disable-all-checks" option, which would allow the suppression and suggest it as part of the error message for "-analyzer-disable-checker". The idea here is to compose this with "--analyze" so that users can selectively opt out specific files from static analysis. llvm-svn: 216763
* unique_ptrify thep passing of BugReports to BugReportEquivClassDavid Blaikie2014-08-292-6/+8
| | | | | | | | I suspect llvm::ilist should take elements by unique_ptr, since it does take ownership of the element (by stitching it into the linked list) - one day. llvm-svn: 216761
* Add missing mach-o EXPORT_SYMBOL_FLAG_KIND_ABSOLUTENick Kledzik2014-08-291-2/+3
| | | | llvm-svn: 216759
* unique_ptrify HeaderMap::FileBufferDavid Blaikie2014-08-292-12/+8
| | | | llvm-svn: 216758
* Tablegen fixes for new syntax when initializing bits from variables.Jean-Luc Duprat2014-08-292-1/+12
| | | | | | Followup to r215086. llvm-svn: 216757
* unique_ptrify Preprocessor's TokenLexerCacheDavid Blaikie2014-08-293-14/+13
| | | | llvm-svn: 216756
* unique_ptrify the result of CFG::buildCFG/CFGBuilder::buildCFGDavid Blaikie2014-08-294-19/+13
| | | | llvm-svn: 216755
* unique_ptrify the diagnostics in CXDiagnosticSetImplDavid Blaikie2014-08-293-27/+25
| | | | llvm-svn: 216754
* Objective-C. Tweak diagnosing properties that are not auto-synthesized.Fariborz Jahanian2014-08-298-34/+54
| | | | | | | | | | | Do not warn when property declared in class's protocol will be auto-synthesized by its uper class implementation because super class has also declared this property while this class has not. Continue to warn if current class has declared the property also (because this declaration will not result in a 2nd synthesis). rdar://18152478 llvm-svn: 216753
* unique_ptrify PathDiagnostic::setEndOfPath's argumentDavid Blaikie2014-08-292-6/+6
| | | | | | | | | | | | | | Again, if shared ownership is the right model here (I assume it is, given graph algorithms & such) this could be tidied up (the 'release' call removed in favor of something safer) by having IntrunsiveRefCntPointer constructible from a unique_ptr. (& honestly I'd probably favor taking a page out of shared_ptr's book, allowing implicit construction from a unique_ptr rvalue, and only allow explicit from a raw pointer - currently IntrusiveRefCntPointer can implicitly own from a raw pointer, which seems unsafe) llvm-svn: 216752
* unique_ptr-ify PathDiagnosticPiece ownershipDavid Blaikie2014-08-295-46/+39
| | | | llvm-svn: 216751
* [FastISel][AArch64] Fix an incorrect kill flag due to a bug in SelectTrunc.Juergen Ributzka2014-08-292-6/+25
| | | | | | | | | | | | | | | | | | | | When we select a trunc instruction we don't emit any code if the type is already i32 or smaller. This is because the instruction that uses the truncated value will deal with it. This behavior can incorrectly transfer a kill flag, which was meant for the result of the truncate, onto the source register. %2 = trunc i32 %1 to i16 ... = ... %2 -> ... = ... vreg1 <kill> ... = ... %1 ... = ... vreg1 This commit fixes this by emitting a COPY instruction, so that the result and source register are distinct virtual registers. This fixes rdar://problem/18178188. llvm-svn: 216750
* Check in a test case for the problem with late-dropped dllimport (PR20803)Hans Wennborg2014-08-291-4/+15
| | | | llvm-svn: 216749
* Consolidate UnixSignals setting/getting in Process.Todd Fiala2014-08-2918-85/+118
| | | | | | | | | | | | | | | | See http://reviews.llvm.org/D5108 for details. This change does the following: * eliminates the Process::GetUnixSignals() virtual method and replaces with a fixed getter. * replaces the Process UnixSignals storage with a shared pointer. * adds a Process constructor variant that can be passed the UnixSignalsSP. When the constructor without the UnixSignalsSP is specified, the Host's default UnixSignals is used. * adds a host-specific version of GetUnixSignals() that is used when we need the host's appropriate UnixSignals variant. * replaces GetUnixSignals() overrides in PlatformElfCore, ProcessGDBRemote, ProcessFreeBSD and ProcessLinux with code that appropriately sets the Process::UnixSignals for the process. This change also enables some future patches that will enable llgs to be used for local Linux debugging. llvm-svn: 216748
* Allow "breakpoint command add" to add commands to more than one breakpoint ↵Jim Ingham2014-08-296-81/+137
| | | | | | | | at a time. <rdar://problem/13314462> llvm-svn: 216747
OpenPOWER on IntegriCloud