summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add missing include guards to WindowsSupport.h.Yaron Keren2015-01-211-0/+5
| | | | llvm-svn: 226669
* Don't assume variable name.Rafael Espindola2015-01-211-1/+1
| | | | | | Should fix the test in -Asserts builds. llvm-svn: 226668
* Make the test a bit stricter. NFC.Rafael Espindola2015-01-211-2/+2
| | | | llvm-svn: 226667
* Make the test a bit stricter. NFC.Rafael Espindola2015-01-211-0/+3
| | | | llvm-svn: 226666
* Revert "DAGCombine: fold (or (and X, M), (and X, N)) -> (and X, (or M, N))"Tim Northover2015-01-214-68/+16
| | | | | | | | It hadn't gone through review yet, but was still on my local copy. This reverts commit r226663 llvm-svn: 226665
* AArch64: add backend option to reserve x18 (platform register)Tim Northover2015-01-212-10/+15
| | | | | | | | | AAPCS64 says that it's up to the platform to specify whether x18 is reserved, and a first step on that way is to add a flag controlling it. From: Andrew Turner <andrew@fubar.geek.nz> llvm-svn: 226664
* DAGCombine: fold (or (and X, M), (and X, N)) -> (and X, (or M, N))Tim Northover2015-01-214-16/+68
| | | | llvm-svn: 226663
* clang-format function. NFC.Rafael Espindola2015-01-211-2/+2
| | | | llvm-svn: 226662
* [x32] Fast ISel should use LEA64_32r instead of LEA32r to adjust addresses ↵Michael Kuperstein2015-01-212-2/+18
| | | | | | in x32 mode. llvm-svn: 226661
* Use a smaller pragma unroll threshold to reduce test execution time.Alexander Potapenko2015-01-211-2/+2
| | | | | | | When opt is compiled with AddressSanitizer it takes more than 30 seconds to unroll the loop in unroll_1M(). llvm-svn: 226660
* tsan: remove sleeps from testsDmitry Vyukov2015-01-2196-425/+476
| | | | | | | | Even sleep(1) lead to episodical flakes on some machines. Use an invisible by tsan barrier to enforce required execution order instead. This makes the tests deterministic and faster. llvm-svn: 226659
* [msan] Update origin for the entire destination range on memory store.Evgeniy Stepanov2015-01-213-9/+159
| | | | | | | | | Previously we always stored 4 bytes of origin at the destination address even for 8-byte (and longer) stores. This should fix rare missing, or incorrect, origin stacks in MSan reports. llvm-svn: 226658
* [mips][microMIPS] MicroMIPS 16-bit unconditional branch instruction BJozef Kolek2015-01-2118-35/+202
| | | | | | | | | | | | | | Implement microMIPS 16-bit unconditional branch instruction B. Implemented 16-bit microMIPS unconditional instruction has real name B16, and B is an alias which expands to either B16 or BEQ according to the rules: b 256 --> b16 256 # R_MICROMIPS_PC10_S1 b 12256 --> beq $zero, $zero, 12256 # R_MICROMIPS_PC16_S1 b label --> beq $zero, $zero, label # R_MICROMIPS_PC16_S1 Differential Revision: http://reviews.llvm.org/D3514 llvm-svn: 226657
* [mips][microMIPS] Implement ADDIUPC instructionJozef Kolek2015-01-2110-0/+86
| | | | | | Differential Revision: http://reviews.llvm.org/D6582 llvm-svn: 226656
* [PM] Refactor the InstCombiner interface to use an external worklist.Chandler Carruth2015-01-212-211/+222
| | | | | | | | | | | | | | | | | | | | | | | | | Because in its primary function pass the combiner is run repeatedly over the same function until doing so produces no changes, it is essentially to not re-allocate the worklist. However, as a utility, the more common pattern would be to put a limited set of instructions in the worklist rather than the entire function body. That is also the more likely pattern when used by the new pass manager. The result is a very light weight combiner that does the visiting with a separable worklist. This can then be wrapped up in a helper function for users that want a combiner utility, or as I have here it can be wrapped up in a pass which manages the iterations used when combining an entire function's instructions. Hopefully this removes some of the worst of the interface warts that became apparant with the last patch here. However, there is clearly more work. I've again left some FIXMEs for the most egregious. The ones that stick out to me are the exposure of the worklist and IR builder as public members, and the use of pointers rather than references. However, fixing these is likely to be much more mechanical and less interesting so I didn't want to touch them in this patch. llvm-svn: 226655
* [PM] Simplify (ha! ha!) the way that instcombine calls theChandler Carruth2015-01-213-9/+6
| | | | | | | | | | | | SimplifyLibCalls utility by sinking it into the specific call part of the combiner. This will avoid us needing to do any contortions to build this object in a subsequent refactoring I'm doing and seems generally better factored. We don't need this utility everywhere and it carries no interesting state so we might as well build it on demand. llvm-svn: 226654
* AST: Don't ignore alignas on EnumDecls when calculating alignmentDavid Majnemer2015-01-214-10/+31
| | | | | | | | | | | | | | | | | | | | | | We didn't consider any alignment attributes on an EnumDecl when calculating alignment. While we are here, ignore alignment specifications on typedef types if one is used as the underlying type. Otherwise, weird things happen: enum Y : int; Y y; typedef int __attribute__((aligned(64))) u; enum Y : u {}; What is the alignment of 'Y'? It would be more consistent with the overall design of enums with fixed underlying types to consider the underlying type's UnqualifiedDesugaredType. This fixes PR22279. llvm-svn: 226653
* [Mips][Disassembler]When disassembler meets load/store from coprocessor 2 ↵Vladimir Medic2015-01-218-8/+39
| | | | | | instructions for mips r6 it crashes as the access to operands array is out of range. This patch adds dedicated decoder method that properly handles decoding of these instructions. llvm-svn: 226652
* [ASan] Fix the test expectations for dyld_insert_libraries_reexec.cc Alexander Potapenko2015-01-211-2/+0
| | | | llvm-svn: 226651
* [Msan] Fix the accept unit test to pass on FreeBSDViktor Kutuzov2015-01-211-2/+5
| | | | | | Differential Revision: http://reviews.llvm.org/D7083 llvm-svn: 226650
* [Sanitizers] Intercept confstr() on FreeBSDViktor Kutuzov2015-01-211-1/+2
| | | | | | Committed unreviewed with permission. llvm-svn: 226649
* [Sanitizers] Intercept opendir()Viktor Kutuzov2015-01-215-9/+31
| | | | | | Differential Revision: http://reviews.llvm.org/D6968 llvm-svn: 226648
* [x86] Remove some unnecessary and slightly confusing typecasts from some ↵Craig Topper2015-01-211-4/+4
| | | | | | patterns. I think it actually went i32->iPtr->i32 in some of these cases. llvm-svn: 226647
* [X86] Convert all the i8imm used by AVX512 and MMX instructions to u8imm.Craig Topper2015-01-212-27/+27
| | | | llvm-svn: 226646
* [X86] Convert all the i8imm used by SSE and AVX instructions to u8imm.Craig Topper2015-01-215-78/+70
| | | | | | This makes the assembler check their size and removes a hack from the disassembler to avoid sign extending the immediate. llvm-svn: 226645
* tsan: don't unroll memory access loop in debug modeDmitry Vyukov2015-01-211-0/+11
| | | | | | | | | MemoryAccess function consumes ~4K of stack in debug mode, in significant part due to the unrolled loop. And gtest gives only 4K of stack to death test threads, which causes stack overflows in debug mode. llvm-svn: 226644
* [ELF] Minimal implementation for ARM static linkingGreg Fitzgerald2015-01-2124-0/+907
| | | | | | | | | | | | | | The code is able to statically link the simplest case of: int main() { return 0; } * Only works with ARM code - no Thumb code, no interwork (-marm -mno-thumb-interwork) * musl libc built with no interwork and no Thumb code Differential Revision: http://reviews.llvm.org/D6716 From: Denis Protivensky <dprotivensky@accesssoftek.com> llvm-svn: 226643
* [x86] Add assembly parser bounds checking to the immediate value for ↵Craig Topper2015-01-217-14/+60
| | | | | | cmpss/cmpsd/cmpps/cmppd. llvm-svn: 226642
* tuple: Make operator<() linear instead of exponentialDuncan P. N. Exon Smith2015-01-211-2/+6
| | | | | | Patch by Matthew Dempsky! llvm-svn: 226641
* [PM] Replace an abuse of inheritance to override a single function withChandler Carruth2015-01-213-35/+27
| | | | | | | | | | | | | a more direct approach: a type-erased glorified function pointer. Now we can pass a function pointer into this for the easy case and we can even pass a lambda into it in the interesting case in the instruction combiner. I'll be using this shortly to simplify the interfaces to InstCombiner, but this helps pave the way and seems like a better design for the libcall simplifier utility. llvm-svn: 226640
* [sanitizer] First step toward supporting 42-bit AS on aarch64Kostya Serebryany2015-01-211-3/+2
| | | | | | | | | | | | | | | aarch64-linux kernel has configurable 39, 42 or 47 bit virtual address space. Most distros AFAIK use 42-bit VA right now, but there are also 39-bit VA users too. The ppc64 handling can be used for this just fine and support all the 3 sizes. There are other issues, like allocator32 not really being able to support the larger addres spaces, and hardcoded 39-bit address space size in other macros. Patch by Jakub Jelinek. llvm-svn: 226639
* Much spelling. Wow.Nico Weber2015-01-211-1/+1
| | | | llvm-svn: 226638
* [sanitizer] Fix aarch64 sanitizer build with recent glibcKostya Serebryany2015-01-212-1/+7
| | | | | | | | | | | | | | | | | | glibc recently changed ABI on aarch64-linux: https://sourceware.org/git/?p=glibc.git;a=commit;h=5c40c3bab2fddaca8cfe12d75944d1fef8adf1a4 Instead of having unsigned short mode; unsigned short __pad1; it now has unsigned int mode; field in ipc_perm structure. This patch allows to build against the recent glibc and disables the ipc_perm.mode verification for older versions of glibc. I think it shouldn't be a big deal even for older glibcs, I couldn't find any place which would actually care about the exact mode field, rather than the whole structure, appart from the CHECK_SIZE_AND_OFFSET macro. Patch by Jakub Jelinek llvm-svn: 226637
* [asan] use MADV_NOHUGEPAGE for shadow to reduce the actual memory usageKostya Serebryany2015-01-219-7/+114
| | | | llvm-svn: 226636
* Allow individual ValueObjects to pick their preferred display languageEnrico Granata2015-01-212-12/+28
| | | | | | | | Most of the time, we can use context information just fine to choose a language (i.e. the language of the frame that the root object was defined in, if any); but in some cases, synthetic children may be fabricated as root frame-less entities, and then we wouldn't know any better This patch allows (internal) synthetic child providers to set a display language on the children they generate, should they so choose llvm-svn: 226634
* Revert "Sema: err_after_alias is unreachable, remove it"David Majnemer2015-01-213-4/+9
| | | | | | This reverts commit r226626. err_after_alias is, in fact, reachable. llvm-svn: 226633
* Fix --start-group/end-group.Rui Ueyama2015-01-213-9/+15
| | | | | | | | | | | We used to manage the state whether we are in a group or not using a counter. The counter is incremented by one if we jump from end-group to start-group, and decremented by one if we don't. The counter was assumed to be either zero or one, but obviously it could be negative (if there's a group which is not repeated at all). This is a fix for that issue. llvm-svn: 226632
* Adding compact unwind as a source of unwind information Jason Molenda2015-01-211-2/+5
| | | | | | | | | | | | | | introduced subtle bugs in two places in RegisterContextLLDB::GetFullUnwindPlanForFrame where it specifically wanted to get an eh_frame unwind plan and was using "Get CallSite UnwindPlan" as synonymous with that. But now we have two different types of unwind plan that can be returned in that case, and compact unwind won't behaves as needed. <rdar://problem/19528559> llvm-svn: 226631
* MS ABI: Virtual member pointer thunks should be in COMDAT groupsDavid Majnemer2015-01-214-11/+15
| | | | | | | They can be emitted by multiple translation units and thus belong in a COMDAT group. llvm-svn: 226630
* MS ABI: Let guard variables be present in COMDATsDavid Majnemer2015-01-212-2/+5
| | | | | | A guard variable in a COMDAT'd function should also be in a COMDAT. llvm-svn: 226629
* CodeGen: Compiler generated __declspec(uuid) objects should be COMDAT'dDavid Majnemer2015-01-212-2/+5
| | | | llvm-svn: 226628
* Make DIExpression::Verify() stricter by checking that the number ofAdrian Prantl2015-01-214-9/+93
| | | | | | elements and the ordering is sane and cleanup the accessors. llvm-svn: 226627
* Sema: err_after_alias is unreachable, remove itDavid Majnemer2015-01-213-7/+5
| | | | | | | Examples this would have catched are now handled by the attribute verification code. llvm-svn: 226626
* Fix some platform specific paths in TestSettings.py.Zachary Turner2015-01-211-3/+7
| | | | | | | | | | | | | | We were referring to hardcoded paths /bin/ls and /bin/cat. For the purposes of this test, the actual value it's set to doesn't matter, and it might as well be a non-existent path. All that matters is that the before and after values have to match, and that trailing whitespace is stripped. On Windows FileSpec (correctly) converts /bin/ls to D:\bin\ls though, so the before and after values won't match. So this patch just correctly builds up a valid path in a platform-agnostic manner, and verifies that it matches before and after the set. llvm-svn: 226625
* Correct all typos in the initialization arguments, even if one could notKaelyn Takata2015-01-212-3/+12
| | | | | | | | | | be corrected. This fixes PR22250, which exposed the bug where if there's more than one TypoExpr in the arguments, once one failed to be corrected none of the TypoExprs after it would be handled at all thanks to an early return. llvm-svn: 226624
* [X86][AVX] Simplified diff between AVX1 and SSE42 fp stack folding tests. NFC.Simon Pilgrim2015-01-211-191/+191
| | | | | | Changed the AVX1 tests register spill tail call to return a xmm like the SSE42 version - makes doing diffs between them a lot easier without affecting the spills themselves. llvm-svn: 226623
* [X86][SSE] Added SSE/AVX1 integer stack folding tests.Simon Pilgrim2015-01-202-0/+1816
| | | | | | Some folding patterns + tests are missing (marked as TODO) - these will be added in a future patch for review. llvm-svn: 226622
* [X86][SSE] Added SSE fp stack folding tests.Simon Pilgrim2015-01-201-0/+1082
| | | | | | Some folding patterns + tests are missing (marked as TODO) - these will be added in a future patch for review. llvm-svn: 226621
* [X86][AVX] Renamed AVX1 fp stack folding tests. NFC.Simon Pilgrim2015-01-201-457/+457
| | | | | | The SSE42 version of the AVX1 float stack folding tests will be added shortly, this renames the AVX1 file so that the files will be near each other in a directory listing to help ensure they are kept in sync. llvm-svn: 226620
* [PM] Separate the InstCombiner from its pass.Chandler Carruth2015-01-204-52/+82
| | | | | | | | | | | | | | | | | | | | This creates a small internal pass which runs the InstCombiner over a function. This is the hard part of porting InstCombine to the new pass manager, as at this point none of the code in InstCombine has access to a Pass object any longer. The resulting interface for the InstCombiner is pretty terrible. I'm not planning on leaving it that way. The key thing missing is that we need to separate the worklist from the combiner a touch more. Once that's done, it should be possible for *any* part of LLVM to just create a worklist with instructions, populate it, and then combine it until empty. The pass will just be the (obvious and important) special case of doing that for an entire function body. For now, this is the first increment of factoring to make all of this work. llvm-svn: 226618
OpenPOWER on IntegriCloud