summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Document return value for FileManager::getNoncachedStatValue()Dmitri Gribenko2014-02-071-0/+2
| | | | llvm-svn: 200967
* tsan: run user OnInitialize callback laterDmitry Vyukov2014-02-071-1/+2
| | | | | | | when global and thread state are initialized, this allows to do more things in the callback. llvm-svn: 200966
* [Sparc] Add support for parsing synthetic instruction 'mov'. Venkatraman Govindaraju2014-02-072-0/+11
| | | | llvm-svn: 200965
* Revert r194097: "With this patch -Wwrite-strings is still implemented with ↵Argyrios Kyrtzidis2014-02-075-8/+28
| | | | | | | | | | | | | the terrible hack of passing -fconst-strings to -cc1" Passing or not a language option based on diagnostic settings is a bad idea, it breaks using a PCH that was compiled with different diagnostic settings. Also add a test case to make sure we don't regress. llvm-svn: 200964
* [Sparc] Emit correct encoding for atomic instructions. Also, add support for ↵Venkatraman Govindaraju2014-02-075-12/+51
| | | | | | parsing CAS instructions to test the CAS encoding. llvm-svn: 200963
* [Sparc] Emit relocations for Thread Local Storage (TLS) when integrated ↵Venkatraman Govindaraju2014-02-076-4/+235
| | | | | | assembler is used. llvm-svn: 200962
* [Sparc] Emit correct relocations for PIC code when integrated assembler is used.Venkatraman Govindaraju2014-02-079-43/+172
| | | | llvm-svn: 200961
* [Sparc] Use SparcMCExpr::VariantKind itself as MachineOperand's target flags.Venkatraman Govindaraju2014-02-078-211/+92
| | | | llvm-svn: 200960
* MS ABI: Don't be so hasty to judge an inheritance modelDavid Majnemer2014-02-073-10/+20
| | | | | | | | If we are in the middle of defining the class, don't attempt to validate previously annotated declarations. We may not have seen base specifiers or virtual method declarations yet. llvm-svn: 200959
* PGO branch weight: fix PR18752.Manman Ren2014-02-072-5/+66
| | | | | | | Fix a bug triggered in IfConverterTriangle when CvtBB has multiple predecessors by getting the weights before removing a successor. llvm-svn: 200958
* X86: Resolve a long standing FIXME and properly isel pextr[bw].Jim Grosbach2014-02-076-19/+33
| | | | | | | | | | | | | | | | | Generalize the AArch64 .td nodes for AssertZext and AssertSext. Use them to match the relevant pextr store instructions. The test widen_load-2.ll requires a slight change because with the stores gone, the remaining instructions are scheduled in a different order. Add test cases for SSE4 and AVX variants. Resolves rdar://13414672. Patch by Adam Nemet <anemet@apple.com>. llvm-svn: 200957
* [mach-o] use new way to copy StringRefsNick Kledzik2014-02-061-10/+4
| | | | llvm-svn: 200956
* Convert test to FileCheck.Rafael Espindola2014-02-061-12/+16
| | | | llvm-svn: 200955
* Temporary fix for PR18473: Don't try to evaluate the initializer for aRichard Smith2014-02-062-7/+21
| | | | | | | | | | | | type-dependent variable, even if the initializer isn't value-dependent. This happens for ParenListExprs composed of non-value-dependent subexpressions, for instance. We should really give ParenListExprs (and InitListExprs) the type of the initialized entity if they're used to represent a dependent initialization (and if so, set them to be type-, value- and instantiation-dependent). llvm-svn: 200954
* Fixes PR18762, stop the StmtPrinter for ObjCPropertyRefExpr from crashing onRichard Trieu2014-02-062-1/+12
| | | | | | certain receiver types. llvm-svn: 200953
* The diagnostic printer expects the LangOptions to still be alive. Give it ↵Nick Lewycky2014-02-061-2/+3
| | | | | | one that lives at least as long as all the uses of it. This is still wrong though, we should be passing in the correct LangOpts for a given source file. llvm-svn: 200952
* Lock the JIT before using it.Sean Callanan2014-02-061-0/+4
| | | | | | <rdar://problem/15958296> llvm-svn: 200951
* Removed spurious lookup of the $__lldb_exprSean Callanan2014-02-062-2/+3
| | | | | | | | | selector when compiling an expression in an Objective-C context. <rdar://problem/15797390> llvm-svn: 200950
* Add isListInitialization matcher.Peter Collingbourne2014-02-063-0/+17
| | | | | | Differential Revision: http://llvm-reviews.chandlerc.com/D2708 llvm-svn: 200949
* PR18128: a lambda capture-default is not permitted for a non-local lambdaRichard Smith2014-02-064-3/+42
| | | | | | expression. llvm-svn: 200948
* [CodeGenPrepare] Move away sign extensions that get in the way of addressingQuentin Colombet2014-02-062-14/+1062
| | | | | | | | | | | | | | | | | | | | | | | | | | mode. Basically the idea is to transform code like this: %idx = add nsw i32 %a, 1 %sextidx = sext i32 %idx to i64 %gep = gep i8* %myArray, i64 %sextidx load i8* %gep Into: %sexta = sext i32 %a to i64 %idx = add nsw i64 %sexta, 1 %gep = gep i8* %myArray, i64 %idx load i8* %gep That way the computation can be folded into the addressing mode. This transformation is done as part of the addressing mode matcher. If the matching fails (not profitable, addressing mode not legal, etc.), the matcher will revert the related promotions. <rdar://problem/15519855> llvm-svn: 200947
* Use correct ld emulation for EABI hardware float triple on NetBSD.Joerg Sonnenberger2014-02-062-2/+10
| | | | llvm-svn: 200946
* [sanitizer] Intercept if_indextoname() and if_nametoindex().Sergey Matveev2014-02-063-1/+49
| | | | llvm-svn: 200945
* Fix indentation of a code example in LibTooling's documentation.James Dennett2014-02-061-1/+1
| | | | llvm-svn: 200944
* Implement ObjectFileMachO::SetLoadAddress().Greg Clayton2014-02-063-1/+65
| | | | llvm-svn: 200943
* [sanitizer] Fix build.Sergey Matveev2014-02-063-10/+18
| | | | llvm-svn: 200942
* Track register pressure a bit more carefully (weird corner case).Andrew Trick2014-02-061-1/+8
| | | | | | | | | | | | | | | | This solves a problem where a def machine operand has no uses but has not been marked dead. In this case, the initial RP analysis was being extra precise and determining from LiveIntervals the the register was actually dead. This caused us to omit the register from the RP tracker's block live out. That's all good, but the per-instruction summary still accounted for it as a valid def. This could cause an assertion in the tracker later when we underflow pressure. This is from a bug report on an out-of-tree target. It is not reproducible on well-behaved targets. I'm just making an obvious fix without unit test. llvm-svn: 200941
* Silence build-bots from the fallout of r200921David Majnemer2014-02-061-5/+11
| | | | llvm-svn: 200940
* Factor some methods that were in DynamicLoaderPOSIXDYLD.Steve Pucci2014-02-068-165/+254
| | | | | | | | | | | | | | | Move some code that was in DynamicLoaderPOSIXDLYD into the base class DynamicLoader. In the case of UpdateLoadedSections(), the test to see whether a file is loadable (its address is zero) is not generally applicable so that test is changed to a more universally applicable check for the SHF_ALLOC flag on the section. Also make it explicit that the reading of the module_id in DynamicLoaderPOSIXDYLD::GetThreadLocalData() is using a hardcoded size (of module_id) of 4, which might not be appropriate on big-endian 64-bit systems, leaving a FIXME comment in place. llvm-svn: 200939
* Move -verify-pch to use VerifyJobActionBen Langmuir2014-02-067-20/+64
| | | | | | | | | Use the verify hook rather than the compile hook to represent the -verify-pch action, and move the exising --verify-debug-info action into its own subclass of VerifyJobAction. Incidentally change the name printed by -ccc-print-phases for --verify-debug-info. llvm-svn: 200938
* Revert r200095 and r200152. It turns out when compiling with -arch armv7 ↵Evan Cheng2014-02-061-3/+4
| | | | | | -mcpu=cortex-m3, the triple would still set iOS as the OS so the hack is still needed. rdar://15984891 llvm-svn: 200937
* [sanitizer] One does not simply intercept getifaddrs().Sergey Matveev2014-02-065-19/+64
| | | | | | Upgrade the interceptor, and attempt to fix the Android build. llvm-svn: 200936
* R600/SI: Add a MUBUF store pattern for Reg+Imm offsetsTom Stellard2014-02-063-1/+23
| | | | llvm-svn: 200935
* R600/SI: Add a MUBUF store pattern for Imm offsetsTom Stellard2014-02-062-0/+40
| | | | llvm-svn: 200934
* R600/SI: Add a MUBUF load pattern for Reg+Imm offsetsTom Stellard2014-02-062-0/+56
| | | | llvm-svn: 200933
* R600/SI: Use immediates offsets for SMRD instructions whenever possibleTom Stellard2014-02-063-10/+93
| | | | | | | | There was a problem with the old pattern, so we were copying some larger immediates into registers when we could have been encoding them in the instruction. llvm-svn: 200932
* Wired-up the new LLVM diagnostic system into clang diagnostic system.Quentin Colombet2014-02-065-1/+162
| | | | | | | | | The approach is similar to the existing inline-asm reporting, just more general. <rdar://problem/15886278> llvm-svn: 200931
* The "-n" and "-p" options to the lldb driver no longer worked after recent ↵Greg Clayton2014-02-061-0/+17
| | | | | | | | IOHandler changes, this is now fixed. <rdar://problem/15962763> llvm-svn: 200930
* Remove const_cast for STI when parsing inline asmDavid Peixotto2014-02-064-15/+17
| | | | | | | | | | | | | | | | | | | | | In a previous commit (r199818) we added a const_cast to an existing subtarget info instead of creating a new one so that we could reuse it when creating the TargetAsmParser for parsing inline assembly. This cast was necessary because we needed to reuse the existing STI to avoid generating incorrect code when the inline asm contained mode-switching directives (e.g. .code 16). The root cause of the failure was that there was an implicit sharing of the STI between the parser and the MCCodeEmitter. To fix a different but related issue, we now explicitly pass the STI to the MCCodeEmitter (see commits r200345-r200351). The const_cast is no longer necessary and we can now create a fresh STI for the inline asm parser to use. Differential Revision: http://llvm-reviews.chandlerc.com/D2709 llvm-svn: 200929
* X86: add costs for 64-bit vector ext/trunc & rebalanceTim Northover2014-02-062-37/+133
| | | | | | | | | | | | | | | | | | | | The most important part of this is probably adding any cost at all for operations like zext <8 x i8> to <8 x i32>. Before they were being recorded as extremely costly (24, I believe) which made LLVM fall back on a 4-wide vectorisation of a loop. It also rebalances the values for sext, zext and trunc. Lacking any other sane metric that might work across CPU microarchitectures I went for instructions. This seems to be in reasonable accord with the rest of the table (sitofp, ...) though no doubt at least one value is sub-optimal for some bizarre reason. Finally, separate AVX and AVX2 values are provided where appropriate. The CodeGen is quite different in many cases. rdar://problem/15981990 llvm-svn: 200928
* Add a -suppress-warnings option to bitcode linking.Eli Bendersky2014-02-061-9/+22
| | | | llvm-svn: 200927
* [sanitizer] Intercept getifaddrs().Sergey Matveev2014-02-065-1/+74
| | | | llvm-svn: 200926
* [sanitizer] Intercept getresuid and getresgid.Sergey Matveev2014-02-065-1/+59
| | | | llvm-svn: 200925
* Improve clang-tidy diagnostic output and filtering.Alexander Kornienko2014-02-063-52/+126
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch introduces several improvements to clang-tidy diagnostic; 1. Make filtering of messages from non-user code more reliable. Output an error when it or any of the related notes touches user code. This fixes an assertion when an error has a location in a system header, and one of the notes relates to user code. 2. In order for 1. to work, subscribe to the static analyzer diagnostics using a custom PathDiagnosticConsumer. 3. Enable colors on supported terminals. 4. Output FixItHints. Reviewers: djasper Reviewed By: djasper CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2714 llvm-svn: 200924
* [TSan] Add a regression test for ↵Alexander Potapenko2014-02-061-0/+28
| | | | | | https://code.google.com/p/thread-sanitizer/issues/detail?id=47 llvm-svn: 200923
* [TSan] Don't flush all file streams on program shutdown to avoid deadlocks ↵Alexander Potapenko2014-02-061-1/+6
| | | | | | | | on file stream locks. This should fix https://code.google.com/p/thread-sanitizer/issues/detail?id=47. llvm-svn: 200922
* MS ABI: Handle indirect field decls in template argsDavid Majnemer2014-02-062-6/+12
| | | | | | | Properly support fields that come from anonymous unions and structs when used as template arguments for pointer to data member params. llvm-svn: 200921
* MS ABI: Tweak pointer-to-member mangling/inheritance model selectionDavid Majnemer2014-02-064-33/+33
| | | | | | | | | | | | Properly determine the inheritance model when dealing with nullptr: - If a nullptr template argument is being checked against pointer-to-member parameter, nail down an inheritance model. N.B. We will chose an inheritance model even if we won't ultimately choose the template to instantiate! Cooky, right? - Null pointer-to-datamembers have a virtual base table offset of -1, not zero. Previously, we chose an offset of 0. llvm-svn: 200920
* Yet another patch to reduce compile time for small programs:Puyan Lotfi2014-02-061-4/+28
| | | | | | | | | | | | | | | | | | | | | The aim in this patch is to reduce work that VirtRegRewriter needs to do when telling MachineRegisterInfo which physregs are in use. Up until now VirtRegRewriter::rewrite has been doing rewriting and populating def info and then proceeding to set whether a physreg is used based this info for every physreg that the target provides. This can be expensive when a target has an unusually high number of supported physregs, and is a noticeable chunk of compile time for small programs on such targets. So to reduce compile time, this patch simply adds the use of a SparseSet to the rewrite function that is used to flag each physreg that is encountered in a MachineFunction. Afterward, rather than iterating over the set of all physregs for a given target to set the physregs used in MachineRegisterInfo, the new way is to iterate over the set of physregs that were actually encountered and set in the SparseSet. This improves compile time because the existing rewrite function was iterating over all MachineOperands already, and because the iterations afterward to setPhysRegUsed is reduced by use of the SparseSet data. llvm-svn: 200919
* X86: deduplicate V[SZ]EXT_MOVL and V[SZ]EXT nodesTim Northover2014-02-064-49/+7
| | | | | | | | | | | | | | | | | | | | | | I believe VZEXT_MOVL means "zero all vector elements except the first" (and should have identical input & output types) whereas VZEXT means "zero extend each element of a vector (discarding higher elements if necessary)". For example: (v4i32 (vzext (v16i8 ...))) should zero extend the low 4 bytes of the incoming vector to 32-bits, discarding higher bytes. However, somewhere in the past, these two concepts had become confused, even leading to a nonsensical VSEXT_MOVL. This re-merges the nodes where appropriate (all VSEXT_MOVL -> VSEXT, VZEXT_MOVL -> VZEXT when it's an actual extension). rdar://problem/15981990 llvm-svn: 200918
OpenPOWER on IntegriCloud