summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ASTMatchers] Fix a typo in cStyleCastExpr() HTML docs as well. NFC.Artem Dergachev2016-11-111-1/+1
| | | | llvm-svn: 286651
* [PowerPC] Implement remaining permute builtins in altivec.h - Clang portionNemanja Ivanovic2016-11-115-1/+279
| | | | | | | | | This patch corresponds to review: https://reviews.llvm.org/D26479 It adds the remaining vector permute/rotate builtins to altivec.h. llvm-svn: 286650
* Fix wrong formatting in lld introduced in r286561 (NFC)Mehdi Amini2016-11-115-5/+5
| | | | | | Pointed out by Davide. llvm-svn: 286649
* FunctionComparator: don't rely on argument evaluation order.Erik Eckstein2016-11-111-1/+3
| | | | | | | This is a follow-up on the recent refactoring of the FunctionMerge pass. It should fix a fail of the new FunctionComparator unittest whe compiling with MSVC. llvm-svn: 286648
* Fix static initialization order fiasco in MCTestsMehdi Amini2016-11-111-5/+9
| | | | | | Reported by Kostya on llvm-dev, uncovered by an ASAN bot llvm-svn: 286647
* [ORC] Temporarily fix the RPCUtils unit test by explicitly specifying a handlerLang Hames2016-11-111-1/+1
| | | | | | | | | return type. This should be fixed permanently by having the RPCUtils header recognize the ErrorSuccess type. I'll commit that in a follow up patch. llvm-svn: 286646
* NFC ProgrammersManual fixPiotr Padlewski2016-11-111-1/+1
| | | | llvm-svn: 286645
* Simplify code and address review comments (NFC)Adrian Prantl2016-11-111-4/+3
| | | | llvm-svn: 286644
* Make test more strict. NFC.Rafael Espindola2016-11-111-6/+35
| | | | | | It was non-obvious that a CHECK was not matching the following section. llvm-svn: 286643
* [Orc] Update the BuildingAJIT Chapter 5 server class for the recent RPC changes.Lang Hames2016-11-111-13/+3
| | | | llvm-svn: 286642
* Remove double setting of invalid flag.Richard Trieu2016-11-111-2/+0
| | | | | | | | In r286630, Decl::setInvalidDecl will automatically set the invalid flag for BindingDecl for children in invalid DecompositionDecl. It no longer is necessary to do a separate setInvalidDecl when finalizing a BindingDecl. llvm-svn: 286641
* Fix a reference-to-temporary introduced in r286607.Adrian Prantl2016-11-111-8/+10
| | | | llvm-svn: 286640
* [ORC] Re-apply 286620 with fixes for the ErrorSuccess class.Lang Hames2016-11-1117-1362/+1763
| | | | llvm-svn: 286639
* [PowerPC] Add remaining vector permute builtins in altivec.h - LLVM portionNemanja Ivanovic2016-11-114-5/+112
| | | | | | | | | | This patch corresponds to review: https://reviews.llvm.org/D26480 Adds all the intrinsics used for various permute builtins that will be added to altivec.h. llvm-svn: 286638
* [cfi] Test case for weak symbol handling.Evgeniy Stepanov2016-11-111-0/+14
| | | | llvm-svn: 286637
* [cfi] Fix weak functions handling.Evgeniy Stepanov2016-11-112-2/+141
| | | | | | | | | | | | | | | When a function pointer is replaced with a jumptable pointer, special case is needed to preserve the semantics of extern_weak functions. Since a jumptable entry can not be extern_weak, we emulate that behaviour by replacing all references to F (the extern_weak function) with the following expression: F != nullptr ? JumpTablePtr : nullptr. Extra special care is needed for global initializers, since most (or probably all) backends can not lower an initializer that includes this kind of constant expression. Initializers like that are replaced with a global constructor (i.e. a runtime initializer). llvm-svn: 286636
* Avoid a crash with -r and .comment.Rafael Espindola2016-11-114-5/+33
| | | | | | | | | | | We would create a MergeInputSection for the synthetic .comment and crash trying to add it to a regular output section. With this we just don't add the synthetic section with -r. That is consistent with gold that doesn't create .note.gnu.gold-version with -r. llvm-svn: 286635
* Fix build since llvm r286566 and require at least llvm 4.0Tom Stellard2016-11-112-3/+4
| | | | llvm-svn: 286634
* [analyzer] Teach RetainCountChecker about VTCompressionSessionEncodeFrame()Devin Coughlin2016-11-112-0/+90
| | | | | | | | | | | | | | | The context argument passed to VideoToolbox's VTCompressionSessionEncodeFrame() function is ultimately passed to a callback supplied when creating the compression session and so may be freed by that callback. To suppress false positives in this case, teach the retain count checker to stop tracking that argument. This isn't suppressed by the usual callback context mechanism because the call to VTCompressionSessionEncodeFrame() doesn't include the callback itself. rdar://problem/27685213 llvm-svn: 286633
* Make the FunctionComparator of the MergeFunctions pass a stand-alone utility.Erik Eckstein2016-11-116-1217/+1422
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is pure refactoring. NFC. This change moves the FunctionComparator (together with the GlobalNumberState utility) in to a separate file so that it can be used by other passes. For example, the SwiftMergeFunctions pass in the Swift compiler: https://github.com/apple/swift/blob/master/lib/LLVMPasses/LLVMMergeFunctions.cpp Details of the change: *) The big part is just moving code out of MergeFunctions.cpp into FunctionComparator.h/cpp *) Make FunctionComparator member functions protected (instead of private) so that a derived comparator class can use them. Following refactoring helps to share code between the base FunctionComparator class and a derived class: *) Add a beginCompare() function *) Move some basic function property comparisons into a separate function compareSignature() *) Do the GEP comparison inside cmpOperations() which now has a new needToCmpOperands reference parameter https://reviews.llvm.org/D25385 llvm-svn: 286632
* Remove weak-linked symbols for SBBreakpointListImplTodd Fiala2016-11-113-8/+8
| | | | | | | | | | | | | | | | | | | Summary: Similar to SBStructuredData's Impl class, SBBreakpointListImpl was getting weak-link exported in the lldb namespace. This change list fixes that by moving out of the lldb public namespace, which removes it from public export visibility. Fixes: rdar://28960344 Reviewers: jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D26553 llvm-svn: 286631
* When a DecompositionDecl is marked invalid, also set the child BindingDecl's toRichard Trieu2016-11-112-1/+25
| | | | | | invalid. llvm-svn: 286630
* Fix -Wpessimizing-move warning.Rui Ueyama2016-11-111-1/+1
| | | | llvm-svn: 286629
* [ASTMatchers] Fix a typo in cStyleCastExpr() docs. NFC.Artem Dergachev2016-11-111-1/+1
| | | | llvm-svn: 286628
* [PowerPC] Add vector conversion builtins to altivec.h - clang portionNemanja Ivanovic2016-11-115-10/+665
| | | | | | | | | This patch corresponds to review: https://reviews.llvm.org/D26308 It adds a number of vector type conversion builtins to altivec.h. llvm-svn: 286627
* Fixed the lost FastMathFlags for FCmp operations in SLPVectorizer.Vyacheslav Klochkov2016-11-112-3/+56
| | | | | | | Reviewer: Michael Zolotukhin. Differential Revision: https://reviews.llvm.org/D26543 llvm-svn: 286626
* [AArch64] Update a FIXME comment to reflect current state. NFC.Chad Rosier2016-11-111-2/+4
| | | | llvm-svn: 286625
* Bitcode: Change getModuleSummaryIndex() to return an llvm::Expected.Peter Collingbourne2016-11-1110-161/+66
| | | | | | Differential Revision: https://reviews.llvm.org/D26539 llvm-svn: 286624
* Bitcode: Clean up error handling for certain bitcode query functions.Peter Collingbourne2016-11-1112-371/+318
| | | | | | | | | | | | | The functions getBitcodeTargetTriple(), isBitcodeContainingObjCCategory(), getBitcodeProducerString() and hasGlobalValueSummary() now return errors via their return value rather than via the diagnostic handler. To make this work, re-implement these functions using non-member functions so that they can be used without the LLVMContext required by BitcodeReader. Differential Revision: https://reviews.llvm.org/D26532 llvm-svn: 286623
* Bitcode: Prepare to move bitcode readers to free functions.Peter Collingbourne2016-11-111-104/+102
| | | | | | | Make initStream() a free function, and change BitcodeReaderBase ctor to take a BitstreamCursor. llvm-svn: 286622
* [ORC] Revert r286620 while I investigate a bot failure.Lang Hames2016-11-1117-1756/+1362
| | | | llvm-svn: 286621
* [ORC] Refactor the ORC RPC utilities to add some new features.Lang Hames2016-11-1117-1362/+1756
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (1) Add support for function key negotiation. The previous version of the RPC required both sides to maintain the same enumeration for functions in the API. This means that any version skew between the client and server would result in communication failure. With this version of the patch functions (and serializable types) are defined with string names, and the derived function signature strings are used to negotiate the actual function keys (which are used for efficient call serialization). This allows clients to connect to any server that supports a superset of the API (based on the function signatures it supports). (2) Add a callAsync primitive. The callAsync primitive can be used to install a return value handler that will run as soon as the RPC function's return value is sent back from the remote. (3) Launch policies for RPC function handlers. The new addHandler method, which installs handlers for RPC functions, takes two arguments: (1) the handler itself, and (2) an optional "launch policy". When the RPC function is called, the launch policy (if present) is invoked to actually launch the handler. This allows the handler to be spawned on a background thread, or added to a work list. If no launch policy is used, the handler is run on the server thread itself. This should only be used for short-running handlers, or entirely synchronous RPC APIs. (4) Zero cost cross type serialization. You can now define serialization from any type to a different "wire" type. For example, this allows you to call an RPC function that's defined to take a std::string while passing a StringRef argument. If a serializer from StringRef to std::string has been defined for the channel type this will be used to serialize the argument without having to construct a std::string instance. This allows buffer reference types to be used as arguments to RPC calls without requiring a copy of the buffer to be made. llvm-svn: 286620
* [InstCombine] add tests to show size-increasing select transformsSanjay Patel2016-11-111-0/+46
| | | | llvm-svn: 286619
* Add a test that uses coverage and printf from a DLLReid Kleckner2016-11-111-0/+17
| | | | | | This test fails without LLVM r286615 llvm-svn: 286618
* [AArch64] Add test to show narrow zero store merging is disabled with strict ↵Chad Rosier2016-11-111-1/+31
| | | | | | align. NFC. llvm-svn: 286617
* [AArch64] Fix bugs in isel lowering replaceSplatVectorStore.Geoff Berry2016-11-112-11/+72
| | | | | | | | | | | | | | | | | Summary: Fix off-by-one indexing error in loop checking that inserted value was a splat vector. Add code to check that INSERT_VECTOR_ELT nodes constructing the splat vector have the expected constant index values. Reviewers: t.p.northover, jmolloy, mcrosier Subscribers: aemerson, llvm-commits, rengolin Differential Revision: https://reviews.llvm.org/D26409 llvm-svn: 286616
* [sancov] Don't instrument MSVC CRT stdio config helpersReid Kleckner2016-11-111-0/+5
| | | | | | | | They get called before initialization, which is a problem for winasan. Test coming in compiler-rt. llvm-svn: 286615
* [CMake] Check runtimes subdir when looking for libcxx and libuwindPetr Hosek2016-11-111-4/+14
| | | | | | | | | The runtimes subdir is the new location for runtimes, we should include it when looking for libcxx and libunwind headers. Differential Revision: https://reviews.llvm.org/D26362 llvm-svn: 286614
* [cfi] Enable cfi-icall on ARM and AArch64.Evgeniy Stepanov2016-11-112-0/+6
| | | | llvm-svn: 286613
* [cfi] Tweak a test for the cfi-icall change.Evgeniy Stepanov2016-11-111-4/+4
| | | | llvm-svn: 286612
* [cfi] Implement cfi-icall using inline assembly.Evgeniy Stepanov2016-11-115-99/+252
| | | | | | | | | | | | | | | | | | | | | | | | | The current implementation is emitting a global constant that happens to evaluate to the same bytes + relocation as a jump instruction on X86. This does not work for PIE executables and shared libraries though, because we end up with a wrong relocation type. And it has no chance of working on ARM/AArch64 which use different relocation types for jump instructions (R_ARM_JUMP24) that is never generated for data. This change replaces the constant with module-level inline assembly followed by a hidden declaration of the jump table. Works fine for ARM/AArch64, but has some drawbacks. * Extra symbols are added to the static symbol table, which inflate the size of the unstripped binary a little. Stripped binaries are not affected. This happens because jump table declarations must be external (because their body is in the inline asm). * Original functions that were anonymous are now named <original name>.cfi, and it affects symbolization sometimes. This is necessary because the only user of these functions is the (inline asm) jump table, so they had to be added to @llvm.used, which does not allow unnamed functions. llvm-svn: 286611
* Fix comments according to the LLVM coding guidelines.Adrian Prantl2016-11-111-56/+42
| | | | llvm-svn: 286610
* Add missing %run to test to fix AArch64 buildbotReid Kleckner2016-11-111-1/+1
| | | | llvm-svn: 286609
* [asan/win] Fix wrong TerminateProcess exit codeReid Kleckner2016-11-112-1/+124
| | | | | | Add a test for it. llvm-svn: 286608
* Revert "Use private linkage for MergedGlobals variables" on Darwin.Adrian Prantl2016-11-119-32/+54
| | | | | | | | | | | | | | | | | | | This is a partial revert of r244615 (http://reviews.llvm.org/D11942), which caused a major regression in debug info quality. Turning the artificial __MergedGlobal symbols into private symbols (l__MergedGlobal) means that the linker will not include them in the symbol table of the final executable. Without a symbol table entry dsymutil is not be able to process the debug info for any of the merged globals and thus drops the debug info for all of them. This patch is enabling the old behavior for all MachO targets while leaving all other targets unaffected. rdar://problem/29160481 https://reviews.llvm.org/D26531 llvm-svn: 286607
* [AArch64] Remove lots of redundant code. NFC.Chad Rosier2016-11-111-30/+41
| | | | llvm-svn: 286606
* Force the locale when executing ld goldSylvestre Ledru2016-11-111-1/+1
| | | | | | | | | | Summary: If run with other locales (like French), the decode operation might fail This is the same change as in r246421 for llvm. llvm-svn: 286605
* [InstCombine] fix formatting of FoldOpIntoSelect(); NFCISanjay Patel2016-11-111-41/+43
| | | | llvm-svn: 286604
* Fixed issues found by Paul Robinson with my patch for:Greg Clayton2016-11-111-4/+7
| | | | | | | | | | https://reviews.llvm.org/D26526 - Fixed DW_FORM_strp to be correctly sized and extracted for DWARF64 - Added some missing strp variants as well - Fixed comment typo llvm-svn: 286603
* Add a new optimization option -Og Sylvestre Ledru2016-11-113-1/+13
| | | | | | | | | | | | | | Summary: Just like gcc, we should have the -Og option as more and more software are using it: https://llvm.org/bugs/show_bug.cgi?id=20765 Reviewers: echristo, dberlin, dblaikie, keith.walker.arm, rengolin Subscribers: aprantl, friss, mehdi_amini, RKSimon, probinson, majnemer, cfe-commits Differential Revision: https://reviews.llvm.org/D24998 llvm-svn: 286602
OpenPOWER on IntegriCloud