summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AST: Implement proposal for dependent elaborated type specifiersDavid Majnemer2014-04-102-1/+68
| | | | | | | | | cxx-abi-dev came up with a way to disambiguate between different keywords used in elaborated type specifiers. This resolves certain collisions during mangling. llvm-svn: 205943
* Move search for header in umbrella directories into its own functionBen Langmuir2014-04-102-75/+92
| | | | | | No functional change intended. llvm-svn: 205942
* Fix to support properly cleaning up failed address sinking against constantsJim Grosbach2014-04-101-2/+3
| | | | | | | | | | | As it turns out the source of the sunkaddr can be a constant, in which case there is not an instruction to delete, causing the cleanup code introduced in r204833 to crash. This patch adds a dynamic check to ensure the deleted value is in fact an instruction and not a constant. Patch by Louis Gerbarg <lgg@apple.com> llvm-svn: 205941
* X86: Tighten up test.Jim Grosbach2014-04-101-1/+1
| | | | | | llc CPU autodection bites again. Speculative fix for bot failures. llvm-svn: 205940
* <rdar://problem/12055586>Enrico Granata2014-04-106-9/+133
| | | | | | | | Enable data formatters to see-through pointers/references to typedefs For instance, if Foo is a typedef to Bar, and there is a formatter for any/all of Bar*, Bar&, Bar&&, then Foo*, Foo&, and Foo&& should pick these up if Foo-specific formatters don't exist llvm-svn: 205939
* Add support for load folding of avx1 logical instructionsJim Grosbach2014-04-092-0/+73
| | | | | | | | | | | | | | | | | | AVX supports logical operations using an operand from memory. Unfortunately because integer operations were not added until AVX2 the AVX1 logical operation's types were preventing the isel from folding the loads. In a limited number of cases the peephole optimizer would fold the loads, but most were missed. This patch adds explicit patterns with appropriate casts in order for these loads to be folded. The included test cases run on reduced examples and disable the peephole optimizer to ensure the folds are being pattern matched. Patch by Louis Gerbarg <lgg@apple.com> rdar://16355124 llvm-svn: 205938
* SelectionDAG: Don't constant fold target-specific nodes.Jim Grosbach2014-04-092-0/+16
| | | | | | | | | | | | | | FoldConstantArithmetic() only knows how to deal with a few target independent ISD opcodes. Bail early if it sees a target-specific ISD node. These node do funny things with operand types which may break the assumptions of the code that follows, and there's no actual folding that can be done anyway. For example, non-constant 256 bit vector shifts on X86 have a shift-amount operand that's a 128-bit v4i32 vector regardless of what the first operand type is and that breaks the assumption that the operand types must match. rdar://16530923 llvm-svn: 205937
* Thread Safety Analysis: reorganized SExpr header files. No change inDeLesley Hutchins2014-04-096-768/+842
| | | | | | functionality. llvm-svn: 205936
* Thread safety: move the inline function back into a namespaceReid Kleckner2014-04-091-3/+3
| | | | | | | | Moving it into a struct makes things work because it implicitly marks the function as inline. The struct is unnecessary if you explicitly mark the function inline. llvm-svn: 205935
* [MS-ABI] Update to alias-avoidance paddingWarren Hunt2014-04-092-16/+275
| | | | | | | | | | This patch changes how we determine if padding is needed between two bases in msvc compatibility mode. Test cases included. In addition, a very minor change to the printing of structures to ease lit testing. llvm-svn: 205933
* When trying to extract the type info for an r-value reference type, dont' ↵Enrico Granata2014-04-091-1/+1
| | | | | | cast to an l-value reference type llvm-svn: 205932
* Switching back from a static namespace-scoped function to a static ↵Aaron Ballman2014-04-091-6/+6
| | | | | | class-scope function. No functional change, but resolves a warning. llvm-svn: 205931
* For the ARM integrated assembler add checking of theKevin Enderby2014-04-094-432/+9248
| | | | | | | | | | | | | | | alignments on vld/vst instructions. And report errors for alignments that are not supported. While this is a large diff and an big test case, the changes are very straight forward. But pretty much had to touch all vld/vst instructions changing the addrmode to one of the new ones that where added will do the proper checking for the specific instruction. rdar://11312406 llvm-svn: 205930
* Thread Safety Analysis: now with less includes. No functional changes.Aaron Ballman2014-04-093-15/+1
| | | | llvm-svn: 205929
* <rdar://problem/16477472>Enrico Granata2014-04-091-4/+3
| | | | | | | | | Set the correct FormatManager revision before starting to figure out the new formatters This can avoid entering some corner cases where as part of figuring out formatters we try to figure out dynamic types, and in turn that causes us to go back in trying to fetch new formatters - it is not only a futile exercise, it's also prone to endless recursion This would only cause a behavior change if getting this chain started would eventually cause something to run and alter the formatters, a very unlikely if at all possible sequence of events llvm-svn: 205928
* [AArch64] Implement the isZExtFree APIs.Chad Rosier2014-04-094-1/+55
| | | | llvm-svn: 205926
* [AArch64] Implement the isTruncateFree API.Chad Rosier2014-04-093-0/+63
| | | | | | | | | In AArch64 i64 to i32 truncate operation is a subregister access. This allows more opportunities for LSR optmization to eliminate variables of different types (i32 and i64). llvm-svn: 205925
* clang-cl: Disable TBAA by default for MSVC compatibilityReid Kleckner2014-04-093-3/+16
| | | | | | | MSVC doesn't have an option to enable TBAA, so make -fstrict-aliasing and -fno-strict-aliasing available in clang-cl. llvm-svn: 205924
* [DAGCombiner] DAG combine does not know how to combine indexed loads withQuentin Colombet2014-04-092-2/+50
| | | | | | | | | | | sign/zero/any extensions. However a few places were not checking properly the property of the load and were turning an indexed load into a regular extended load. Therefore the indexed value was lost during the process and this was triggering an assertion. <rdar://problem/16389332> llvm-svn: 205923
* Handle difference in signedness of 'char' in test/Index/print-type.c{,pp}Anders Waldenborg2014-04-092-2/+2
| | | | llvm-svn: 205922
* Make c-index-test -test-print-type include pointeekind for pointer typesAnders Waldenborg2014-04-094-16/+23
| | | | | | | | | The idea is to give visibility to more type kinds, especially for getting a better grasp of what appears as unexposed type kind with libclang. Differential Revision: http://reviews.llvm.org/D3325 llvm-svn: 205921
* Add a -triple argument so that this new test passes on Darwin.Bob Wilson2014-04-091-1/+1
| | | | | | The section names used here are not valid for Mach-O. llvm-svn: 205920
* Enable building of sanitizers on FreeBSDViktor Kutuzov2014-04-091-4/+4
| | | | llvm-svn: 205919
* Simple fix for build failures resulting from r205867.Bob Wilson2014-04-091-1/+1
| | | | llvm-svn: 205918
* [Preprocessor/CodeComplete] Don't add include guard macros to ↵Argyrios Kyrtzidis2014-04-098-12/+41
| | | | | | code-completion results. llvm-svn: 205917
* Cannot have the base class destructor be private (or explicitly deleted); ↵Aaron Ballman2014-04-091-4/+0
| | | | | | fixing the build bots. llvm-svn: 205916
* Thread Safety Analysis: some minor cleanups to the latest thread safety ↵Aaron Ballman2014-04-094-101/+99
| | | | | | | | | | | | changes. No functional changes intended. * Adds an iterator_range interface to CallExpr to get the arguments * Modifies SExpr such that it must be allocated in the Arena, and cannot be deleted * Minor const-correctness and nullptr updates * Adds some operator!= implementations to complement operator== * Removes unused functionality llvm-svn: 205915
* Revert "Revert "YAMLIO: Encode ambiguous hex strings explicitly""David Majnemer2014-04-093-2/+13
| | | | | | | | | Don't quote octal compatible strings if they are only two wide, they aren't ambiguous. This reverts commit r205857 which reverted r205857. llvm-svn: 205914
* Inject unique_ptr/shared_ptr into the test instead of using <memory>Samuel Benzaquen2014-04-092-2/+34
| | | | | | | | | | | | | | | Summary: Inject unique_ptr/shared_ptr into the test instead of using <memory> Libraries might not be present on tests. This fixes the break introduces at rL205854. Reviewers: klimek CC: cfe-commits Differential Revision: http://reviews.llvm.org/D3330 llvm-svn: 205913
* Use the default TID format in curses UIEd Maste2014-04-091-3/+7
| | | | | | | | | | TIDs are conventionally shown as decimal values on FreeBSD and Linux. Thus, use the ${thread.id%tid} format string to display the thread ID, instead of a fixed hex format. llvm.org/pr19380 llvm-svn: 205912
* obj2yaml: Don't crash if the characteristics field is zeroDavid Majnemer2014-04-093-0/+47
| | | | | | | | | obj2yaml would fail when seeing a Weak External auxiliary record with a characteristics field holding zero instead of one of IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY, IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY, or IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY. llvm-svn: 205911
* Add the offload directory which contains the code needed to supportJim Cownie2014-04-0960-0/+136186
| | | | | | | OpenMP 4.0 "target" directives. This will need more work for generality, but we want to get it out and visible to the community. llvm-svn: 205909
* [NVPTX] Add preliminary intrinsics and codegen support for textures/surfacesJustin Holewinski2014-04-0918-20/+4831
| | | | | | This commit adds intrinsics and codegen support for the surface read/write and texture read instructions that take an explicit sampler parameter. Codegen operates on image handles at the PTX level, but falls back to direct replacement of handles with kernel arguments if image handles are not enabled. Note that image handles are explicitly disabled for all target architectures in this change (to be enabled later). llvm-svn: 205907
* [NVPTX] Add support for addrspacecast in global variable initializers, ↵Justin Holewinski2014-04-093-4/+78
| | | | | | including emitting generic() when casting to address space 0. llvm-svn: 205906
* [NVPTX] Add query support for read-write images and managed variablesJustin Holewinski2014-04-094-3/+52
| | | | | | This also fixes a bug in the annotation cache where the cache will not be cleared between modules if multiple modules are compiled in the same process. llvm-svn: 205905
* Do not rely on invalid pthread API use in thread testEd Maste2014-04-092-24/+22
| | | | | | | | | | Calling mutex_lock from one thread and then mutex_unlock from another is not permitted. Replace the awkward mutex usage with a mutex and condition variable. llvm.org/pr18061 llvm-svn: 205900
* Fix some doc and comment typosAlp Toker2014-04-0920-27/+27
| | | | llvm-svn: 205899
* [ARM64] Change SYS without a register to an alias to make disassembling more ↵Bradley Smith2014-04-094-22/+12
| | | | | | consistant. llvm-svn: 205898
* [ARM64] Correctly disassemble ISB operand as ISB not DBarrier.Bradley Smith2014-04-092-1/+8
| | | | llvm-svn: 205897
* [ARM64] Properly support both apple and standard syntax for FMOVBradley Smith2014-04-094-13/+19
| | | | llvm-svn: 205896
* [ARM64] Flag setting logical/add/sub immediate instructions don't use SP.Bradley Smith2014-04-093-4/+24
| | | | llvm-svn: 205895
* [ARM64] Conditional branches must always print their condition code, even AL.Bradley Smith2014-04-092-3/+2
| | | | llvm-svn: 205894
* [ARM64] Fix disassembly logic for extended loads/stores with 32-bit registers.Bradley Smith2014-04-092-5/+9
| | | | llvm-svn: 205893
* [ARM64] When printing a pre-indexed address with #0, the ', #0' is not optional.Bradley Smith2014-04-094-13/+67
| | | | llvm-svn: 205892
* [ARM64] Add missing shifted register MVN alias to ORNBradley Smith2014-04-093-0/+21
| | | | llvm-svn: 205891
* [ARM64] SXTW/UXTW are only valid aliases for 32-bit operations.Bradley Smith2014-04-092-1/+7
| | | | llvm-svn: 205890
* [ARM64] Fix canonicalisation of MOVs. MOV is too complex to be modelled by a ↵Bradley Smith2014-04-094-19/+97
| | | | | | dumb alias. llvm-svn: 205889
* [ARM64] Fixup ADR/ADRP parsing such that they accept immediates and all ↵Bradley Smith2014-04-093-41/+99
| | | | | | labels types llvm-svn: 205888
* [ARM64] Ensure sp is decoded as SP, not XZR in LD1 instructions.Bradley Smith2014-04-092-2/+4
| | | | llvm-svn: 205887
* [ARM64] Tighten up the special casing in emitting arithmetic extends. UXTW ↵Bradley Smith2014-04-092-8/+10
| | | | | | should only be translated when the instruction uses WSP, not SP. Vice versa for UXTX and 64-bit instructions. llvm-svn: 205886
OpenPOWER on IntegriCloud