summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Support: Inject LLVM_VERSION_INFO into the Support libraryJustin Bogner2014-06-171-0/+4
| | | | | | | | Mimic r116632 in passing LLVM_VERSION_INFO from the Makefile build system to the build. This improves the -version output of tools that use llvm::cl under the configure+make system. llvm-svn: 211091
* tools: Add a space between package version and LLVM_VERSION_INFOJustin Bogner2014-06-171-1/+1
| | | | | | This reads a little strangely. Add a space to clean it up. llvm-svn: 211090
* Convert a few loops to use ranges.Rafael Espindola2014-06-171-18/+15
| | | | llvm-svn: 211089
* [OPENMP] Renamed 'DataRecursiveASTVisitor' to just 'RecursiveASTVisitor' for ↵Alexey Bataev2014-06-172-11/+11
| | | | | | 'reduction' clause and small reformatting after Alp Toker's review. llvm-svn: 211088
* Add an overload for SourceMgr::PrintMessage that takes an existing diagnostic.Jordan Rose2014-06-172-8/+18
| | | | llvm-svn: 211087
* Modernize doc comments for SourceMgr.Jordan Rose2014-06-172-51/+39
| | | | | | No functionality change. llvm-svn: 211086
* Add documentation for PGO with instrumentation to clang's User's Manual.Bob Wilson2014-06-171-11/+78
| | | | | | <rdar://problem/16771671> llvm-svn: 211085
* [InstCombine] mark ADD with nuw if no unsigned overflowJingyue Wu2014-06-176-9/+54
| | | | | | | | | | | | | | | | | | | | | | Summary: As a starting step, we only use one simple heuristic: if the sign bits of both a and b are zero, we can prove "add a, b" do not unsigned overflow, and thus convert it to "add nuw a, b". Updated all affected tests and added two new tests (@zero_sign_bit and @zero_sign_bit2) in AddOverflow.ll Test Plan: make check-all Reviewers: eliben, rafael, meheff, chandlerc Reviewed By: chandlerc Subscribers: chandlerc, llvm-commits Differential Revision: http://reviews.llvm.org/D4144 llvm-svn: 211084
* Fix build breakage caused by change to ValueMapTest.Zachary Turner2014-06-171-2/+2
| | | | llvm-svn: 211083
* SROA: Only split loads on byte boundariesDuncan P. N. Exon Smith2014-06-173-5/+69
| | | | | | | | | | | | | r199771 accidently broke the logic that makes sure that SROA only splits load on byte boundaries. If such a split happens, some bits get lost when reassembling loads of wider types, causing data corruption. Move the width check up to reject such splits early, avoiding the corruption. Fixes PR19250. Patch by: Björn Steinbrink <bsteinbr@gmail.com> llvm-svn: 211082
* Add support for the /Fi argument to clang-cl (PR20036)Hans Wennborg2014-06-173-2/+15
| | | | | | | | Patch by Ehsan Akhgari! Differential Revision: http://reviews.llvm.org/D4143 llvm-svn: 211081
* Expose ValueMap's mutex type as a typedef instead of a sys::Mutex.Zachary Turner2014-06-172-11/+13
| | | | | | | | This enables static polymorphism of the mutex type, which is necessary in order to replace the standard mutex implementation with a different type. llvm-svn: 211080
* MS static locals mangling: don't double-increment mangling number for switchesHans Wennborg2014-06-172-0/+34
| | | | | | Differential Revision: http://reviews.llvm.org/D4165 llvm-svn: 211079
* MS static locals mangling: don't count enum scopesHans Wennborg2014-06-174-2/+29
| | | | | | | | | | We may not have the mangling for static locals vs. enums completely figured out, but at least for my simple test cases, enums should not increment the mangling number. Differential Revision: http://reviews.llvm.org/D4164 llvm-svn: 211078
* [FastISel][X86] Refactor the code to get the X86 condition from a helper ↵Juergen Ributzka2014-06-165-96/+676
| | | | | | | | | function. NFC. Make use of helper functions to simplify the branch and compare instruction selection in FastISel. Also add test cases for compare and conditonal branch. llvm-svn: 211077
* Teach LoopUnrollPass to respect loop unrolling hints in metadata.Eli Bendersky2014-06-162-87/+560
| | | | | | | | | | | | | [This is resubmitting r210721, which was reverted due to suspected breakage which turned out to be unrelated]. Some extra review comments were addressed. See D4090 and D4147 for more details. The Clang change that produces this metadata was committed in r210667 Patch by Mark Heffernan. llvm-svn: 211076
* Use the integrated assembler by default on OpenBSD/powerpc.Brad Smith2014-06-162-0/+11
| | | | llvm-svn: 211075
* Don't hardcode path to codesign_allocate.Kuba Brecka2014-06-161-1/+5
| | | | | | | | Building OS X debugserver assumes you have an Xcode installation at /Application/Xcode.app. Let's instead detect where Xcode is using xcrun. See http://reviews.llvm.org/D4152 llvm-svn: 211074
* Correctly classify code sections as code sections by using the ↵Greg Clayton2014-06-161-113/+149
| | | | | | | | | | S_ATTR_PURE_INSTRUCTIONS and S_ATTR_SOME_INSTRUCTIONS section flags. Also correctly set the symbol type of symbols for S_REGULAR and other section types. <rdar://problem/16896734> llvm-svn: 211073
* Revert r211066, 211067, 211068, 211069, 211070.Zachary Turner2014-06-1610-47/+134
| | | | | | | These were committed accidentally from the wrong branch before having a review sign-off. llvm-svn: 211072
* Cleanup more unreferenced MutexGuard parameters on functions.Zachary Turner2014-06-163-29/+29
| | | | | | | | | | | These parameters are intended to serve as sort of a contract that you cannot access the functions outside of a mutex. However, the entire JIT class cannot be accessed outside of a mutex anyway, and all methods acquire a lock as soon as they are entered. Since the containing class already is not intended to be thread-safe, it only serves to add code clutter. llvm-svn: 211071
* Programmer's Manual changes.Zachary Turner2014-06-161-47/+4
| | | | llvm-svn: 211070
* Kill the LLVM global lock.Zachary Turner2014-06-164-10/+23
| | | | llvm-svn: 211069
* Remove some code churn.Zachary Turner2014-06-162-4/+3
| | | | llvm-svn: 211068
* Remove some more code out into a separate CL.Zachary Turner2014-06-168-63/+17
| | | | llvm-svn: 211067
* Users of the llvm global mutex must now acquire it manually.Zachary Turner2014-06-165-26/+16
| | | | | | This allows the mutex to be acquired in a guarded, RAII fashion. llvm-svn: 211066
* Fix definition of INFINITY and add NAN/HUGE_VAL[F]Aaron Watry2014-06-162-2/+6
| | | | | | | | | | | | v3: change __builtin_nanf() to __builtin_nanf("") This doesn't work yet, but it was agreed to commit as-is with the logic that "broken" is better than "completely missing" and this should be fixed in clang. v2: use __builtin_inff() and also add nan/huge_val definitions Signed-off-by: Aaron Watry <awatry@gmail.com> llvm-svn: 211065
* AArch64: Fix silly think-o in tests.Jim Grosbach2014-06-161-4/+4
| | | | | | rdar://9283021 llvm-svn: 211064
* Add remaining float constantsJeroen Ketema2014-06-161-0/+8
| | | | | Reviewed-by: Aaron Watry <awatry@gmail.com> llvm-svn: 211062
* Add load/store functionalityReed Kotler2014-06-162-7/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patches allows non conversions like i1=i2; where both are global ints. In addition, arithmetic and other things start to work since fast-isel will use existing patterns for non fast-isel from tablegen files where applicable. In addition i8, i16 will work in this limited context for assignment without the need for sign extension (zero or signed). It does not matter how i8 or i16 are loaded (zero or sign extended) since only the 8 or 16 relevant bits are used and clang will ask for sign extension before using them in arithmetic. This is all made more complete in forthcoming patches. for example: int i, j=1, k=3; void foo() { i = j + k; } Keep in mind that this pass is not enabled right now and is an experimental pass It can only be enabled with a hidden option to llvm of -mips-fast-isel. Test Plan: Run test-suite, loadstore2.ll and I will run some executable tests. Reviewers: dsanders Subscribers: mcrosier Differential Revision: http://reviews.llvm.org/D3856 llvm-svn: 211061
* AArch64: Support for __builtin_arm_rbit() and __builtin_arm_rbit64().Jim Grosbach2014-06-163-0/+29
| | | | | | | | __builtin_arm_rbit() and __builtin_arm_rbit64(). rdar://9283021 llvm-svn: 211060
* ARM: Support for __builtin_arm_rbit() intrinsic.Jim Grosbach2014-06-163-0/+15
| | | | | | | | Reverse the bits in a word. Maps to the RBIT instruction. rdar://9283021 llvm-svn: 211059
* AArch64: Add backend intrinsic for rbit.Jim Grosbach2014-06-162-0/+11
| | | | | | | | | Define an intrinsic for the frontend to use and pattern match it to the RBIT instruction. rdar://9283021 llvm-svn: 211058
* ARM: intrinsic support for rbit.Jim Grosbach2014-06-162-0/+10
| | | | | | | | | We already have an ARMISD node. Create an intrinsic to map to it so we can add support for the frontend __rbit() intrinsic. rdar://9283021 llvm-svn: 211057
* [PPC64] Fix PR19893 - improve code generation for local function addressesBill Schmidt2014-06-164-28/+28
| | | | | | | | | | | | | | | | | | | | | Rafael opened http://llvm.org/bugs/show_bug.cgi?id=19893 to track non-optimal code generation for forming a function address that is local to the compile unit. The existing code was treating both local and non-local functions identically. This patch fixes the problem by properly identifying local functions and generating the proper addis/addi code. I also noticed that Rafael's earlier changes to correct the surrounding code in PPCISelLowering.cpp were also needed for fast instruction selection in PPCFastISel.cpp, so this patch fixes that code as well. The existing test/CodeGen/PowerPC/func-addr.ll is modified to test the new code generation. I've added a -O0 run line to test the fast-isel code as well. Tested on powerpc64[le]-unknown-linux-gnu with no regressions. llvm-svn: 211056
* Since the DataLayout is always found off of the subtarget go aheadEric Christopher2014-06-161-7/+3
| | | | | | and query the base target machine implementation for it. llvm-svn: 211055
* Clean up some unnecessary mutex guards.Zachary Turner2014-06-162-29/+28
| | | | | | | | | | | | | | | These were being used as unreferenced parameters to enforce that the methods must not be called without holding a mutex, but all of the methods in question were internal, and the methods were only exposed through an interface whose entire purpose was to serialize access to these structures, so expecting the methods to be accessed under a mutex is reasonable enough. Reviewed by: blaikie Differential Revision: http://reviews.llvm.org/D4162 llvm-svn: 211054
* actually, just check if it is a file (including directory or symlink)Sylvestre Ledru2014-06-161-1/+1
| | | | llvm-svn: 211053
* Improve comments for r211040Louis Gerbarg2014-06-162-3/+6
| | | | | | | | Added comment to clarify why we r211040 choose to bail out of fast isel instead of generating a more complicated relocation, and fix mislabelled register in the comments of the asan test case. llvm-svn: 211052
* Check that the directory does not exist.Sylvestre Ledru2014-06-161-0/+6
| | | | | | | | | | | Otherwise, it could allows local users to obtain sensitive information or overwrite arbitrary files via a symlink attack on temporary directories with predictable names. Reported as CVE-2014-2893 ( https://security-tracker.debian.org/tracker/CVE-2014-2893 ) Found by Jakub Wilk llvm-svn: 211051
* [modules] When we merge redecl chains or mark a decl used with an updateRichard Smith2014-06-166-2/+33
| | | | | | | record, mark all subsequent decls as 'used' too, to maintain the AST invariant that getPreviousDecl()->Used implies this->Used. llvm-svn: 211050
* Revert "clctypes.h: Don't rely on stddef.h for size_t and ptrdiff_t"Aaron Watry2014-06-161-2/+1
| | | | | | This reverts commit 4cf021ae67b6ea8cfd42aa76ce6f5e1c329e145a. llvm-svn: 211049
* Revert "lit: warn when passed invalid pathname" (r210597)Hans Wennborg2014-06-161-5/+3
| | | | | | | | | It was pointed out that this breaks the "virtual test discovery" mechanism, which allows for narming tests in the test exec root. Reverting until I can figure out how to fix this. llvm-svn: 211048
* math: Implement mix builtinAaron Watry2014-06-166-0/+26
| | | | | | Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Tom Stellard <tom@stellard.net> llvm-svn: 211047
* relational: Add isequal(floatN) builtinAaron Watry2014-06-164-0/+50
| | | | | | Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Tom Stellard <tom@stellard.net> llvm-svn: 211046
* Add all(igentype) builtinAaron Watry2014-06-164-0/+47
| | | | | | Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Tom Stellard <tom@stellard.net> llvm-svn: 211045
* clctypes.h: Don't rely on stddef.h for size_t and ptrdiff_tAaron Watry2014-06-161-1/+2
| | | | llvm-svn: 211044
* Don't allow two threads to create/use the section list before it has been ↵Greg Clayton2014-06-161-0/+3
| | | | | | | | fully populated. <rdar://problem/16937203> llvm-svn: 211043
* ARM: implement correct atomic operations on v7MTim Northover2014-06-162-8/+73
| | | | | | | | | | ARM v7M has ldrex/strex but not ldrexd/strexd. This means 32-bit operations should work as normal, but 64-bit ones are almost certainly doomed. Patch by Phoebe Buckheister. llvm-svn: 211042
* MS ABI: Implement x86_64 RTTIDavid Majnemer2014-06-162-18/+202
| | | | | | | | | | | | | | | | | Summary: The RTTI scheme for x86_64 is largely the same as the one for i386. Differences are largely limited to avoiding load-time relocations by replacing pointers to RTTI metadata with the difference of that data relative to the load address of the module. Interestingly, this precludes the possibility of successfully using RTTI data from another DLL. The ImageBase reference is always relative to the current DLL. Differential Revision: http://reviews.llvm.org/D4148 llvm-svn: 211041
OpenPOWER on IntegriCloud