summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* IR: Prepare for a new UniquableMDNode subclass, NFCDuncan P. N. Exon Smith2015-01-124-15/+81
| | | | | | | | Add generic dispatch for the parts of `UniquableMDNode` that cast to `MDTuple`. This makes adding other subclasses (like PR21433's `MDLocation`) easier. llvm-svn: 225697
* IR: Stop erasing MDNodes from uniquing sets during teardownDuncan P. N. Exon Smith2015-01-123-24/+10
| | | | | | | | | | Stop erasing `MDNode`s from the uniquing sets in `LLVMContextImpl` during teardown (in particular, during `UniquableMDNode::~UniquableMDNode()`). Although it's currently feasible, there isn't any clear benefit and it may not be feasible for other subclasses (which don't explicitly store the lookup hash). llvm-svn: 225696
* First crack at PowerPC 3.6 release notesBill Schmidt2015-01-121-1/+19
| | | | llvm-svn: 225695
* Add support for character option types.Zachary Turner2015-01-1212-8/+284
| | | | | | | | | | | | | This will allow, in a subsequent patch, the addition of a global setting that allows the user to specify a single character that LLDB will recognize as an escape character when processing arg strings to accomodate differences in Windows/non-Windows path handling. Differential Revision: http://reviews.llvm.org/D6887 Reviewed by: Jim Ingham llvm-svn: 225694
* [LIT] Remove string decoding in gtest discovery code. lit.util.capture now ↵Eric Fiselier2015-01-121-1/+0
| | | | | | does decoding. llvm-svn: 225693
* [dfsan] Export dfsan_get_label_info function with C linkage.Peter Collingbourne2015-01-121-1/+1
| | | | llvm-svn: 225692
* [X86] Also create+widen FMIN/FMAX nodes for v2f32.Ahmed Bougacha2015-01-122-1/+54
| | | | | | | | | | | | | | | | This happens in the HINT benchmark, where the SLP-vectorizer created v2f32 fcmp/select code. The "correct" solution would have been to teach the vectorizer cost model that v2f32 isn't legal (because really, it isn't), but if we can vectorize we might as well do so. We legalize these v2f32 FMIN/FMAX nodes by widening to v4f32 later on. v3f32 were already widened to v4f32 by the generic unroll-and-build-vector legalization. rdar://15763436 Differential Revision: http://reviews.llvm.org/D6557 llvm-svn: 225691
* IR: Move creation logic to MDNodeFwdDecl, NFCDuncan P. N. Exon Smith2015-01-122-7/+6
| | | | | | | Same as with `MDTuple`, factor out a `friend MDNode` by moving creation logic to the concrete subclass. llvm-svn: 225690
* IR: Make MDNodeFwdDecl destructor publicDuncan P. N. Exon Smith2015-01-122-1/+7
| | | | | | Now that the leak detector is gone, anyone can call this. llvm-svn: 225689
* [Msan] Fix use of mmap(MAP_ANONYMOUS) in the unit tests on FreeBSDViktor Kutuzov2015-01-121-2/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D6929 llvm-svn: 225688
* [X86] Make SSE min/max testcases more explicit. NFC.Ahmed Bougacha2015-01-121-32/+84
| | | | llvm-svn: 225687
* [Msan] Fix tests reading /proc files on FreeBSDViktor Kutuzov2015-01-121-7/+13
| | | | | | Differential Revision: http://reviews.llvm.org/D6926 llvm-svn: 225686
* IR: Move creation logic down to MDTuple, NFCDuncan P. N. Exon Smith2015-01-122-22/+36
| | | | | | | | | Move creation logic for `MDTuple`s down where it belongs. Once there are a few more subclasses, these functions really won't make much sense here (the `friend` relationship was already awkward). For now, leave the `MDNode` versions around, but have it forward down. llvm-svn: 225685
* reverting due to build bot failureNathan Sidwell2015-01-122-22/+30
| | | | llvm-svn: 225684
* IR: Push storeDistinctInContext() down to UniquableMDNode, NFCDuncan P. N. Exon Smith2015-01-122-2/+3
| | | | llvm-svn: 225683
* IR: Split GenericMDNode into MDTuple and UniquableMDNodeDuncan P. N. Exon Smith2015-01-1210-98/+128
| | | | | | | | | | | | | | | | | | | | | | | | | Split `GenericMDNode` into two classes (with more descriptive names). - `UniquableMDNode` will be a common subclass for `MDNode`s that are sometimes uniqued like constants, and sometimes 'distinct'. This class gets the (short-lived) RAUW support and related API. - `MDTuple` is the basic tuple that has always been returned by `MDNode::get()`. This is as opposed to more specific nodes to be added soon, which have additional fields, custom assembly syntax, and extra semantics. This class gets the hash-related logic, since other sublcasses of `UniquableMDNode` may need to hash based on other fields. To keep this diff from getting too big, I've added casts to `MDTuple` that won't really scale as new subclasses of `UniquableMDNode` are added, but I'll clean those up incrementally. (No functionality change intended.) llvm-svn: 225682
* [LIT] Decode string result in lit.util.captureEric Fiselier2015-01-121-9/+9
| | | | | | | | | | | | | | Summary: I think this is probably a bug, but I'm putting this up for review just to be sure. I think that `lit.util.capture` should decode the resulting string in the same way `lit.util.executeCommand` does. Reviewers: ddunbar, EricWF Reviewed By: EricWF Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6769 llvm-svn: 225681
* IR: Invert logic to simplify control flow, NFCDuncan P. N. Exon Smith2015-01-121-8/+5
| | | | llvm-svn: 225670
* IR: Separate out decrementUnresolvedOperandCount(), NFCDuncan P. N. Exon Smith2015-01-122-6/+9
| | | | llvm-svn: 225667
* Fix typo Block.h vs Blocks.hBen Langmuir2015-01-121-1/+1
| | | | | | Thanks for Jeremy for noticing! llvm-svn: 225666
* IR: Prevent handleChangedOperand() recursionDuncan P. N. Exon Smith2015-01-122-11/+8
| | | | | | | | | | | Instead of returning early on `handleChangedOperand()` recursion (finally identified (and test added) in r225657), prevent it upfront by releasing operands before RAUW. Aside from massively different program flow, there should be no functionality change ;). llvm-svn: 225665
* [PowerPC]To provide better compatibility with gcc I added the __bool keyword ↵Bill Seurer2015-01-124-0/+21
| | | | | | | | | | | | | | | | | to the Alitivec support in clang. __bool is functionally identical to using bool when declaring vector types. For example: vector bool char v_bc; vector __bool char v___bc; clang already supported vector/__vector and pixel/__pixel but was missing __bool. http://llvm.org/bugs/show_bug.cgi?id=19220 For reference: https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/PowerPC-AltiVec_002fVSX-Built-in-Functions.html http://reviews.llvm.org/D6882 llvm-svn: 225664
* R600/SI: Use RegisterOperands to specify which operands can accept immediatesTom Stellard2015-01-1215-94/+86
| | | | | | | | | | | | There are some operands which can take either immediates or registers and we were previously using different register class to distinguish between operands that could take immediates and those that could not. This patch switches to using RegisterOperands which should simplify the backend by reducing the number of register classes and also make it easier to implement the assembler. llvm-svn: 225662
* Target: Allow target specific operand typesTom Stellard2015-01-124-8/+15
| | | | | | | | | | | | | | | | | | | This adds two new fields to the RegisterOperand TableGen class: string OperandNamespace = "MCOI"; string OperandType = "OPERAND_REGISTER"; These fields can be used to specify a target specific operand type, which will be stored in the OperandType member of the MCOperandInfo object. This can be useful for targets that need to store some extra information about operands that cannot be expressed using the target independent types. For example, in the R600 backend, there are operands which can take either registers or immediates and it is convenient to be able to specify this in the TableGen definitions. llvm-svn: 225661
* GVN: propagate equalities for floating point comparesSanjay Patel2015-01-123-1/+89
| | | | | | | | | | | | Allow optimizations based on FP comparison values in the same way as integers. This resolves PR17713: http://llvm.org/bugs/show_bug.cgi?id=17713 Differential Revision: http://reviews.llvm.org/D6911 llvm-svn: 225660
* Fix bogus 'method is unavailable' errors with modulesBen Langmuir2015-01-127-3/+54
| | | | | | | | This just tweaks the fix from r224892 (which handled PCHs) to work with modules, where we will serialize each method individually and hence the hasMoreThanOneDecl bit needs to be updated as we add the methods. llvm-svn: 225659
* IR: Add test for handleChangedOperand() recursionDuncan P. N. Exon Smith2015-01-122-2/+63
| | | | | | | Turns out this can happen. Remove the `FIXME` and add a testcase that crashes without the extra logic. llvm-svn: 225657
* IR: Separate out recalculateHash(), NFCDuncan P. N. Exon Smith2015-01-122-11/+14
| | | | llvm-svn: 225655
* IR: Separate out helper: resolveAfterOperandChange(), NFCDuncan P. N. Exon Smith2015-01-122-15/+19
| | | | llvm-svn: 225654
* IR: Use SubclassData32 directly, NFCDuncan P. N. Exon Smith2015-01-122-11/+11
| | | | | | | Simplify some logic by accessing `SubclassData32` directly instead of relying on API. llvm-svn: 225653
* RegisterCoalescer: Turn some impossible conditions into assertsMatthias Braun2015-01-121-17/+11
| | | | | | | | This is a fixed version of reverted r225500. It fixes the too early if() continue; of the last patch and adds a comment to the unorthodox loop. llvm-svn: 225652
* More [-Werror,-Winconsistent-missing-override] fixes.Eric Christopher2015-01-121-4/+4
| | | | llvm-svn: 225651
* IR: Don't allow operands to become unresolvedDuncan P. N. Exon Smith2015-01-121-6/+10
| | | | | | | Operands shouldn't change from being resolved to unresolved during graph construction. Simplify the logic based on that assumption. llvm-svn: 225649
* IR: Remove redundant comment, NFCDuncan P. N. Exon Smith2015-01-121-1/+0
| | | | llvm-svn: 225648
* IR: Simplify code, NFCDuncan P. N. Exon Smith2015-01-121-1/+1
| | | | llvm-svn: 225647
* IR: Make temporary nodes distinctDuncan P. N. Exon Smith2015-01-122-1/+9
| | | | | | | Change the return of `MDNode::isDistinct()` for `MDNode::getTemporary()` to `true`. They aren't uniqued. llvm-svn: 225646
* Update comment.Rui Ueyama2015-01-121-2/+2
| | | | llvm-svn: 225645
* Add r224985 back with two fixes.Rafael Espindola2015-01-1219-247/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One is that AArch64 has additional restrictions on when local relocations can be used. We have to take those into consideration when deciding to put a L symbol in the symbol table or not. The other is that ld64 requires the relocations to cstring to use linker visible symbols on AArch64. Thanks to Michael Zolotukhin for testing this! Remove doesSectionRequireSymbols. In an assembly expression like bar: .long L0 + 1 the intended semantics is that bar will contain a pointer one byte past L0. In sections that are merged by content (strings, 4 byte constants, etc), a single position in the section doesn't give the linker enough information. For example, it would not be able to tell a relocation must point to the end of a string, since that would look just like the start of the next. The solution used in ELF to use relocation with symbols if there is a non-zero addend. In MachO before this patch we would just keep all symbols in some sections. This would miss some cases (only cstrings on x86_64 were implemented) and was inefficient since most relocations have an addend of 0 and can be represented without the symbol. This patch implements the non-zero addend logic for MachO too. llvm-svn: 225644
* IR: Simplify replaceOperandWith(), NFCDuncan P. N. Exon Smith2015-01-121-4/+3
| | | | | | | | This will call `handleChangedOperand()` less frequently, but in that case (i.e., `isStoredDistinctInContext()`) it has identical logic to here. llvm-svn: 225643
* IR: Remove redundant calls to MDNode::setHash(), NFCDuncan P. N. Exon Smith2015-01-121-2/+0
| | | | | | `storeDistinctInContext()` already calls `setHash(0)`. llvm-svn: 225642
* [ASan] Move the shadow on Windows 32-bit from 0x20000000 to 0x40000000Timur Iskhodzhanov2015-01-123-6/+18
| | | | llvm-svn: 225641
* [SimplifyLibCalls] Factor out fortified libcall handling.Ahmed Bougacha2015-01-125-391/+236
| | | | | | | | This lets us remove CGP duplicate. Differential Revision: http://reviews.llvm.org/D6541 llvm-svn: 225640
* [SimplifyLibCalls] Factor out str/mem libcall optimizations.Ahmed Bougacha2015-01-122-42/+66
| | | | | | | | | Put them in a separate function, so we can reuse them to further simplify fortified libcalls as well. Differential Revision: http://reviews.llvm.org/D6540 llvm-svn: 225639
* [SimplifyLibCalls] Factor out signature checks for fortifiable libcalls.Ahmed Bougacha2015-01-121-27/+73
| | | | | | | | | The checks are the same for fortified counterparts to the libcalls, so we might as well do them in a single place. Differential Revision: http://reviews.llvm.org/D6539 llvm-svn: 225638
* [asan] Fix uninit in coverage.Evgeniy Stepanov2015-01-121-6/+30
| | | | | | | pc_fd was not initialized to (-1) on some code paths, resulting in the program erroneously closing stdin when reinitializing coverage. llvm-svn: 225637
* [asan] Pass activation options in the android test runner.Evgeniy Stepanov2015-01-121-1/+1
| | | | llvm-svn: 225636
* Fix two extra semicolon warningsEhsan Akhgari2015-01-122-2/+3
| | | | | | | | | | Reviewers: timurrrr Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6890 llvm-svn: 225635
* Fix vexing parse in test.Eric Fiselier2015-01-121-1/+1
| | | | llvm-svn: 225633
* [mips] Explain why we need to always clobber for MIPS inline asm. NFC.Toma Tabacu2015-01-121-0/+21
| | | | llvm-svn: 225632
* [ASan] Handle SIGBUS on Linux.Jay Foad2015-01-122-1/+65
| | | | | | | | | | | | | | | | | | Summary: On Linux in some situations we can get SIGBUS instead of SIGSEGV on stack overflow, so asan should handle SIGBUS as well as SIGSEGV. https://code.google.com/p/address-sanitizer/issues/detail?id=369 Reviewers: samsonov, glider Reviewed By: glider Subscribers: glider, llvm-commits Differential Revision: http://reviews.llvm.org/D6923 llvm-svn: 225630
OpenPOWER on IntegriCloud