summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use inbounds GEPs for memcpy and memset loweringEli Bendersky2015-07-172-13/+15
| | | | | | Follow-up on discussion in http://reviews.llvm.org/D11220 llvm-svn: 242542
* Bump libc++ version # to 3.8Marshall Clow2015-07-171-1/+1
| | | | llvm-svn: 242541
* Add missing chkstk.S files from r242539Reid Kleckner2015-07-172-0/+73
| | | | llvm-svn: 242540
* compiler-rt: add support for mingw-w64 in builtinsReid Kleckner2015-07-173-2/+28
| | | | | | | | | | | | | | | | | The is so that we can avoid using libgcc and use compiler-rt with mingw-w64. Related driver patch http://reviews.llvm.org/D11077 I have tested this with mingw-w64 and everything seems to be in order. I also sent this patch to the mingw-w64 mailing list for them to look at. Patch by Martell Malone. Differential Revision: http://reviews.llvm.org/D11085 llvm-svn: 242539
* [msan] Fix open_memstream handling.Evgeniy Stepanov2015-07-172-17/+28
| | | | | | | | For open_memstream() files, buffer pointer is only valid immediately after fflush() or fclose(). Fix the fclose() interceptor to unpoison after the REAL(fclose) call, not before it. llvm-svn: 242535
* [ASTMatchers] Use provided target NodeKind instead of inferring it from the ↵Samuel Benzaquen2015-07-174-9/+23
| | | | | | | | | | matchers. Individual matchers might not be convertible to each other's kind, but they might still all be convertible to the target kind. All the callers already know the target kind, so just pass it down. llvm-svn: 242534
* Add support for producing thin archives in llvm-lib.Rafael Espindola2015-07-173-1/+12
| | | | | | I will send an entry in docs/CommandGuide for review today. llvm-svn: 242533
* Standalone cmake build improvements (bug #23889)Pavel Labath2015-07-172-2/+4
| | | | | | patch by Eugene Zelenko. llvm-svn: 242529
* Edited the CPUNames table of TargetParserAlexandros Lamprineas2015-07-171-3/+1
| | | | | | | | | - Changed the default FPU of cortex-m4. - Removed "cortex-m4f" entry. Currently not supported. Change-Id: I73121e358aa9e7ba68eb001c2143df390ff2352a Phabricator: http://reviews.llvm.org/D11100 llvm-svn: 242528
* Fix liblldb linking on RHEL 6 (bug #24140)Pavel Labath2015-07-173-21/+21
| | | | | | Patch by Eugene Zelenko. llvm-svn: 242525
* GPURuntimeDebugPrinter: Printer pointer values (except if they are strings)Tobias Grosser2015-07-171-7/+12
| | | | | | | Only pointer values in constant address space are assumed to be strings. For all other pointers their address is printed. llvm-svn: 242524
* R600: Add macro defs for all supported OpenCL extensionsTom Stellard2015-07-172-2/+17
| | | | llvm-svn: 242523
* [Mips] Set mips64r6 as default CPU for MIPS64 AndroidPetar Jovanovic2015-07-172-1/+5
| | | | | | | | Change default CPU for MIPS64 Android. Now it is mips64r6. Differential Revision: http://reviews.llvm.org/D11294 llvm-svn: 242522
* Changed "pragma" -> "#pragma" in a comment, NFC.Andrey Bokhanko2015-07-171-1/+1
| | | | llvm-svn: 242521
* Make global aliases have symbol size equal to their typeJohn Brawn2015-07-174-0/+34
| | | | | | | | | | This is mainly for the benefit of GlobalMerge, so that an alias into a MergedGlobals variable has the same size as the original non-merged variable. Differential Revision: http://reviews.llvm.org/D10837 llvm-svn: 242520
* Improve conditional opcode handling in emulation based unwindingTamas Berghammer2015-07-177-70/+50
| | | | | | | | | | Don't chane the CFI information when a conditional instruction is emulated (eg.: popeq {r0, pc}) because the CFI for the next instruction should be the same as the CFI for the current instruction. Differential revision: http://reviews.llvm.org/D11258 llvm-svn: 242519
* test-release.sh: Add ability to do a test build using the trunk or branches.Daniel Sanders2015-07-171-3/+19
| | | | | | | | | | | | | | | | | | | | | Summary: Adds '--svn-path BRANCH' that causes the script to export the specified path from each project. Otherwise the tag specified by -release, -rc, etc. will be used. The version portion of the package name will be 'test-$path' (any forward slashes in the branch name are replaced with underscores), for example: -svn-path trunk => clang+llvm-test-trunk-mips-linux-gnu.tar.xz -svn-path branches/release_35 => clang+llvm-test-branches_release_35-mips-linux-gnu.tar.xz This is primarily useful for bringing new release packages up to standard without needing to create and maintain a tag for the purpose. Reviewers: tstellarAMD, hans Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6563 llvm-svn: 242518
* [LLGS] Limit jThreadsInfo to only the most important registers for nowPavel Labath2015-07-171-5/+20
| | | | | | | | | | | | | | | | Summary: It seems that reading of register data is the biggest bottleneck in LLGS at the moment. Sending four registers instead of the full GPR set increases the jThreadsInfo processing time about 6-fold. Until we figure out where is this time going, this commit limits the amount of data we send to provide a more fluid debugging experience. Reviewers: tberghammer, ovyalov Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D11264 llvm-svn: 242517
* Fix android build after r242514Tamas Berghammer2015-07-171-1/+1
| | | | | | | On android std::to_string isn't supported. Replace it with llvm::utostr. llvm-svn: 242516
* [MainLoop] Fix assertion failurePavel Labath2015-07-173-9/+9
| | | | | | | | | Upon connection termination the waitable handle of an IOObject gets reset to an invalid handle. This caused a problem since we used the object->GetWaitableHandle as a key to the set of registered events. The fix is to use something more immutable as a key: we make a copy of the original waitable handle, instead of holding onto the IOObject. llvm-svn: 242515
* -Refactored ARMTargetInfo in order to use the API of TargetParserAlexandros Lamprineas2015-07-171-156/+150
| | | | | | | | | | | for extracting target specific information. -Patches commit r241343: case 'armv7l' was unhandled in ARMTargetInfo::getCPUAttr(), and thus it was returning invalid characters for macro definition. Change-Id: I1a0972e5ff5529cd17376c6562047bab8b4da32c Phabricator: http://reviews.llvm.org/D10839 llvm-svn: 242514
* [llgo] cmd/gllgo: handle/ignore more flagsAndrew Wilkins2015-07-171-0/+8
| | | | | | | | | | | | | | | | Summary: This diff is to support Debian packaging, which sets various hardening-rleated flags in CFLAGS. They don't make sense for Go, so we just ignore them. Reviewers: pcc Subscribers: llvm-commits, axw Differential Revision: http://reviews.llvm.org/D11288 llvm-svn: 242513
* [PM/AA] Disable the core unsafe aspect of GlobalsModRef in the face ofChandler Carruth2015-07-173-8/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | basic changes to the IR such as folding pointers through PHIs, Selects, integer casts, store/load pairs, or outlining. This leaves the feature available behind a flag. This flag's default could be flipped if necessary, but the real-world performance impact of this particular feature of GMR may not be sufficiently significant for many folks to want to run the risk. Currently, the risk here is somewhat mitigated by half-hearted attempts to update GlobalsModRef when the rest of the optimizer changes something. However, I am currently trying to remove that update mechanism as it makes migrating the AA infrastructure to a form that can be readily shared between new and old pass managers very challenging. Without this update mechanism, it is possible that this still unlikely failure mode will start to trip people, and so I wanted to try to proactively avoid that. There is a lengthy discussion on the mailing list about why the core approach here is flawed, and likely would need to look totally different to be both reasonably effective and resilient to basic IR changes occuring. This patch is essentially the first of two which will enact the result of that discussion. The next patch will remove the current update mechanism. Thanks to lots of folks that helped look at this from different angles. Especial thanks to Michael Zolotukhin for doing some very prelimanary benchmarking of LTO without GlobalsModRef to get a rough idea of the impact we could be facing here. So far, it looks very small, but there are some concerns lingering from other benchmarking. The default here may get flipped if performance results end up pointing at this as a more significant issue. Also thanks to Pete and Gerolf for reviewing! Differential Revision: http://reviews.llvm.org/D11213 llvm-svn: 242512
* [OCaml] Use a nicer style for documentation than OCaml default.Peter Zotov2015-07-172-1/+100
| | | | | | | | | | In particular, it's much easier to read, as it doesn't expand all the way on wide-screen displays. CSS committed under LLVM license with explicit permission from Daniel Bünzli <daniel.buenzli@erratique.ch>. llvm-svn: 242511
* [asan] Fix invalid debug info for promotable allocasKuba Brecka2015-07-172-1/+33
| | | | | | | | | | Since r230724 ("Skip promotable allocas to improve performance at -O0"), there is a regression in the generated debug info for those non-instrumented variables. When inspecting such a variable's value in LLDB, you often get garbage instead of the actual value. ASan instrumentation is inserted before the creation of the non-instrumented alloca. The only allocas that are considered standard stack variables are the ones declared in the first basic-block, but the initial instrumentation setup in the function breaks that invariant. This patch makes sure uninstrumented allocas stay in the first BB. Differential Revision: http://reviews.llvm.org/D11179 llvm-svn: 242510
* [llvm-cxxdump] Don't rely on global stateDavide Italiano2015-07-171-41/+18
| | | | | | Differential Revision: http://reviews.llvm.org/D11227 llvm-svn: 242509
* [CodeGen, X86] Classify vectors <= 32 bits as INTEGERDavid Majnemer2015-07-172-6/+17
| | | | | | | | | | We shouldn't crash despite the AMD64 ABI not giving clear guidance as to how to pass around vector types <= 32 bits. Instead, classify such vectors as INTEGER to be compatible with GCC. This fixes PR24162. llvm-svn: 242508
* Tests for "Disabling of "redefine_extname" pragma for C++ code"Alexey Bataev2015-07-171-0/+6
| | | | | | | In response to Richard Smith's comment (http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20150622/131782.html), this patch disables "redefine_extname" pragma for C++ code. Also, I added a test that this pragma doesn't apply to static declarations. Differential Revision: http://reviews.llvm.org/D10805 llvm-svn: 242507
* clang: s/PCHContainerOps/PCHContainerRdr/ in \param(s), introduced in ↵NAKAMURA Takumi2015-07-173-3/+3
| | | | | | r242499. [-Wdocumentation] llvm-svn: 242506
* Fix clang-fuzzer build after r242499.Adrian Prantl2015-07-171-1/+1
| | | | llvm-svn: 242505
* Driver: Determine file names for crash reports more reliablyJustin Bogner2015-07-174-60/+71
| | | | | | | | Guessing which file name to replace based on the -main-file-name argument to -cc1 is flawed. Instead, keep track of which arguments are inputs to each command. llvm-svn: 242504
* AArch64: add comment missed out from earlier patch.Tim Northover2015-07-171-0/+4
| | | | | | Helps explain some of the background behind this bit of code. llvm-svn: 242503
* Teach the std::wstring data formatter how to properly display strings with ↵Enrico Granata2015-07-174-5/+46
| | | | | | embedded NUL bytes llvm-svn: 242501
* ARM: Enable MachineScheduler and disable PostRAScheduler for swift.Matthias Braun2015-07-1710-1069/+48
| | | | | | | | | | | | | | | | | | | | | This is mostly done to disable the PostRAScheduler which optimizes for instruction latencies which isn't a good fit for out-of-order architectures. This also allows to leave out the itinerary table in swift in favor of the SchedModel ones. This change leads to performance improvements/regressions by as much as 10% in some benchmarks, in fact we loose 0.4% performance over the llvm-testsuite for reasons that appear to be unknown or out of the compilers control. rdar://20803802 documents the investigation of these effects. While it is probably a good idea to perform the same switch for the other ARM out-of-order CPUs, I limited this change to swift as I cannot perform the benchmark verification on the other CPUs. Differential Revision: http://reviews.llvm.org/D10513 llvm-svn: 242500
* Make the clang module container format selectable from the command line.Adrian Prantl2015-07-1738-140/+240
| | | | | | | | | | | | | - introduces a new cc1 option -fmodule-format=[raw,obj] with 'raw' being the default - supports arbitrary module container formats that libclang is agnostic to - adds the format to the module hash to avoid collisions - splits the old PCHContainerOperations into PCHContainerWriter and a PCHContainerReader. Thanks to Richard Smith for reviewing this patch! llvm-svn: 242499
* Only do fmul (fadd x, x), c combine if the fadd only has one useMatt Arsenault2015-07-172-1/+105
| | | | | | This was increasing the instruction count if the fadd has multiple uses. llvm-svn: 242498
* Add StringPrinter support for printing a std::string with embedded NUL bytesEnrico Granata2015-07-175-42/+97
| | | | llvm-svn: 242496
* Use small encodings for constants when possible.Rafael Espindola2015-07-173-18/+44
| | | | llvm-svn: 242493
* __builtin_setjmp/__builtin_longjmp is support on ARM nowMatthias Braun2015-07-171-1/+0
| | | | llvm-svn: 242492
* MIR Serialization: Serialize the frame setup machine instruction flag.Alex Lorenz2015-07-175-6/+54
| | | | llvm-svn: 242491
* Allow gdbremote.py to take input from STDIN and handle "c" and "s" packets.Greg Clayton2015-07-171-9/+28
| | | | llvm-svn: 242490
* Allow __builtin_setjmp/__builtin_longjmp on ARMMatthias Braun2015-07-171-0/+4
| | | | | | | | The problems in the llvm target got fixed in r242481 and r242482. Related to rdar://20544153, rdar://20660786 llvm-svn: 242489
* Re-landing r242318 after buildbot update.Chaoren Lin2015-07-162-5/+21
| | | | llvm-svn: 242488
* MIR Serialization: Serialize the frame index machine operands.Alex Lorenz2015-07-1610-20/+307
| | | | | Reviewers: Duncan P. N. Exon Smith llvm-svn: 242487
* Add new constructors for LoopInfo/DominatorTree/BFI/BPICong Hou2015-07-166-0/+23
| | | | | | | | | | | | | | | | | Those new constructors make it more natural to construct an object for a function. For example, previously to build a LoopInfo for a function, we need four statements: DominatorTree DT; LoopInfo LI; DT.recalculate(F); LI.analyze(DT); Now we only need one statement: LoopInfo LI(DominatorTree(F)); http://reviews.llvm.org/D11274 llvm-svn: 242486
* Doxygen: Enable autobrief feature, matching llvm config/coding standards.James Dennett2015-07-161-2/+2
| | | | | | | | | | | | Summary: This corresponds to the change made in r237417 - "Doxygen: Enable autobrief feature and update coding standards." Reviewers: eliben Subscribers: eliben, cfe-commits Differential Revision: http://reviews.llvm.org/D11281 llvm-svn: 242485
* clang-format: Respect IndentWrappedFunctionNames when aligning colonsDaniel Jasper2015-07-162-1/+22
| | | | | | | | | | | | | | | | Before: - (void)shortf:(GTMFoo *)theFoo dontAlignNamef:(NSRect)theRect { } After: - (void)shortf:(GTMFoo *)theFoo dontAlignNamef:(NSRect)theRect { } Patch by Kwasi Mensah, thank you! llvm-svn: 242484
* [Sema] Refactor Sema::ImplicitExceptionSpecification::CalledDeclDavide Italiano2015-07-161-16/+14
| | | | | | This (hopefully) brings more clarity. No functional changes (intended). llvm-svn: 242483
* Arm: Don't define a label twice with two setjmps in a function.Matthias Braun2015-07-163-14/+92
| | | | | | | | | | Constructing a name based on the function name didn't give us a unique symbol if we had more than one setjmp in a function. Using MCContext::createTempSymbol() always gives us a unique name. Differential Revision: http://reviews.llvm.org/D9314 llvm-svn: 242482
* Fix __builtin_setjmp in combination with sjlj exception handling.Matthias Braun2015-07-1610-10/+157
| | | | | | | | | | | | | | | | | | | llvm.eh.sjlj.setjmp was used as part of the SjLj exception handling style but is also used in clang to implement __builtin_setjmp. The ARM backend needs to output additional dispatch tables for the SjLj exception handling style, these tables however can't be emitted if llvm.eh.sjlj.setjmp is simply used for __builtin_setjmp and no actual landing pad blocks exist. To solve this issue a new llvm.eh.sjlj.setup_dispatch intrinsic is introduced which is used instead of llvm.eh.sjlj.setjmp in the SjLj exception handling lowering, so we can differentiate between the case where we actually need to setup a dispatch table and the case where we just need the __builtin_setjmp semantic. Differential Revision: http://reviews.llvm.org/D9313 llvm-svn: 242481
OpenPOWER on IntegriCloud