summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* NetBSD: Define initial RegisterContextNetBSD_x86_64Kamil Rytarowski2016-02-023-0/+400
| | | | | | | | | | | | Summary: Add basic support, i386 version will be added later. Reviewers: emaste, joerg, clayborg, tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16508 llvm-svn: 259462
* [LVI] Introduce an intersect operation on lattice valuesPhilip Reames2016-02-023-32/+160
| | | | | | | | | | | | LVI has several separate sources of facts - edge local conditions, recursive queries, assumes, and control independent value facts - which all apply to the same value at the same location. The existing implementation was very conservative about exploiting all of these facts at once. This change introduces an "intersect" function specifically to abstract the action of picking a good set of facts from all of the separate facts given. At the moment, this function is relatively simple (i.e. mostly just reuses the bits which were already there), but even the minor additions reveal the inherent power. For example, JumpThreading is now capable of doing an inductive proof that a particular value is always positive and removing a half range check. I'm currently only using the new intersect function in one place. If folks are happy with the direction of the work, I plan on making a series of small changes without review to replace mergeIn with intersect at all the appropriate places. Differential Revision: http://reviews.llvm.org/D14476 llvm-svn: 259461
* Add comments.Rui Ueyama2016-02-021-0/+8
| | | | llvm-svn: 259460
* [libFuzzer] allow passing 1 or more files as individual inputsKostya Serebryany2016-02-025-5/+58
| | | | llvm-svn: 259459
* Update a comment.Rui Ueyama2016-02-021-1/+2
| | | | llvm-svn: 259458
* MachineVerifier: Use report_context() instead of ad-hoc messages.Matthias Braun2016-02-021-10/+32
| | | | llvm-svn: 259457
* [X86] Fix a bug in getMemOpBaseRegImmOfsSanjoy Das2016-02-022-2/+40
| | | | | | | | | Fix a crash in `getMemOpBaseRegImmOfs` that happens if the base of `MemOp` is a frame index memory operand. The fix is to have `getMemOpBaseRegImmOfs` bail out in such cases. We can possibly be more clever here, if needed. llvm-svn: 259456
* Replace auto with the real type.Rui Ueyama2016-02-021-1/+1
| | | | llvm-svn: 259455
* [libFuzzer] fail if the corpus dir does not existKostya Serebryany2016-02-022-1/+4
| | | | llvm-svn: 259454
* [asan] Add iOS support for Address SanitizerAnna Zaks2016-02-024-17/+87
| | | | | | Differential Revision: http://reviews.llvm.org/D15624 llvm-svn: 259453
* [asan] Fixup r258849 by updating warning in the testAnna Zaks2016-02-021-1/+1
| | | | | | The error message has been changed in code as of r258849 (http://reviews.llvm.org/D16546). Update the test as well. llvm-svn: 259452
* [asan] Add iOS support.Anna Zaks2016-02-0216-37/+85
| | | | llvm-svn: 259451
* Set ordinals of all File's created in MachO passes.Pete Cooper2016-02-025-5/+15
| | | | | | | | | | | When we do debug printing of atoms, they expect their parent file to have an ordinal. Right now we trigger a bunch of asserts. This doesn't actually manifest in differences in any real tests, but even if the only thing it does is improve debuggability then its still useful. llvm-svn: 259450
* [X86][FastISel] Don't force Nearest-Even rounding for VCVTPS2PH, use MXCSR.Ahmed Bougacha2016-02-022-3/+5
| | | | | | FastISel counterpart to r259448. llvm-svn: 259449
* [X86] Don't force Nearest-Even rounding for VCVTPS2PH, use MXCSR.Ahmed Bougacha2016-02-023-6/+11
| | | | | | | | | | | | | | | | | | Officially, we don't acknowledge non-default configurations of MXCSR, as getting there would require usage of the FENV_ACCESS pragma (at least insofar as rounding mode is concerned). We don't support the pragma, so we can assume that the default rounding mode - round to nearest, ties to even - is always used. However, it's inconsistent with the rest of the instruction set, where MXCSR is always effective (unless otherwise specified). Also, it's an unnecessary obstacle to the few brave souls that use fenv.h with LLVM. Avoid the hard-coded rounding mode for fp_to_f16; use MXCSR instead. llvm-svn: 259448
* [safestack] Make sure the unsafe stack pointer is popped in all casesAnna Zaks2016-02-024-31/+34
| | | | | | | | | | The unsafe stack pointer is only popped in moveStaticAllocasToUnsafeStack so it won't happen if there are no static allocas. Fixes https://llvm.org/bugs/show_bug.cgi?id=26122 Differential Revision: http://reviews.llvm.org/D16339 llvm-svn: 259447
* [LVI] Fix a latent bug in getValueAtPhilip Reames2016-02-021-0/+8
| | | | | | | | This routine was returning Undefined for most queries. This was utterly wrong. Amusingly, we do not appear to have any callers of this which are actually trying to exploit unreachable code or this would have broken the world. A better approach would be to explicit describe the intersection of facts. That's blocked behind http://reviews.llvm.org/D14476 and I wanted to fix the current bug. llvm-svn: 259446
* Template Type Diffing changeRichard Trieu2016-02-024-38/+34
| | | | | | | When all the arguments of a template are elided, print "A<...>" instead of "A<[2 * ...]>". Also remove comment fragment that means nothing. llvm-svn: 259445
* Always initialize Out<ELFT> members.Rui Ueyama2016-02-021-0/+12
| | | | | | | | Instead of leave unused fields as is, set them to nullptr. Currnetly this is NFC, but if you call writeResults more than once, you should be able to see the difference. llvm-svn: 259444
* We try to avoid static objects. These are on the error path for unsupported ↵Jim Ingham2016-02-021-4/+4
| | | | | | | | features in the socket, so just returning freshly constructed objects is fine. llvm-svn: 259443
* Fixed comment characters. NFCPete Cooper2016-02-021-3/+3
| | | | llvm-svn: 259442
* Add pointerKind() method to the MachO ArchHandler's. NFC.Pete Cooper2016-02-025-0/+20
| | | | | | | | The ObjCPass is going to need to create pointer sized relocations in the ObjC sections. This method will be used to give us a target independent way of getting the correct kind for the refererence. llvm-svn: 259441
* Add ObjC method list atom type. NFC.Pete Cooper2016-02-013-0/+4
| | | | | | | | | | An upcoming patch will use this to create lists of ObjC methods. Adding it now to reduce the amount of code in that patch. Test cases will follow in the other patch too. llvm-svn: 259440
* Add command line option to disable ObjC category merging.Pete Cooper2016-02-013-0/+11
| | | | | | | | | | | This adds the no_objc_category_merging cmdline option which will be used in an upcoming commit to disable the category optimizer. It is on by default in ld64 so we match that here. Test case will come soon with the patch to make use of this option. llvm-svn: 259439
* fix typos; NFCSanjay Patel2016-02-011-2/+2
| | | | llvm-svn: 259438
* [LVI] Missing test case from 259432Philip Reames2016-02-011-0/+25
| | | | llvm-svn: 259437
* Move SimpleDefinedAtom::addReference to DefinedAtom.Pete Cooper2016-02-017-29/+45
| | | | | | | | | | | | Most of the other methods to access Reference's were on DefinedAtom so this just keeps them all together. This will be used in a future patch in ObjCPass which needs to add new references. The method is virtual because we may add references to different data structures depending on whether we parsed a macho file or yaml. llvm-svn: 259436
* ELF: Do not call fatal() if relocation contraints are not satisfied.Rui Ueyama2016-02-014-14/+15
| | | | | | http://reviews.llvm.org/D16648 llvm-svn: 259435
* Add test for PR26419 (stable function summary ordering)Teresa Johnson2016-02-011-3/+10
| | | | | | | Enhance an existing test to also check that the ordering of the function summary entries is stable. llvm-svn: 259434
* Fix getCompiler in unit testing framework on compiler symlinksStephane Sezer2016-02-011-1/+2
| | | | | | | | | | | | | | | | Summary: Checks using the result of getCompiler() will fail to identify the compiler correctly if CC is a symlink path (ie /usr/bin/cc). Reviewers: zturner, emaste Subscribers: llvm-commits, sas Differential Revision: http://reviews.llvm.org/D16488 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 259433
* [LVI] Remove overly tight assert from 259429Philip Reames2016-02-011-2/+2
| | | | | | I'll submit a test case shortly which covers this, but it's causing clang self host problems in the builders so I wanted to get it removed. llvm-svn: 259432
* Add operator== for DefinedAtom::reference_iterator. NFC.Pete Cooper2016-02-011-1/+5
| | | | | | | | | This will be used by a future commit which wanted to compare iterators for equality. Also changed operator!= to be in terms of the new operator== llvm-svn: 259431
* [X86][AVX512] Add support for AVX512 VMOVD (load) shuffle decodingSimon Pilgrim2016-02-014-19/+10
| | | | llvm-svn: 259430
* [LVI] Add select handlingPhilip Reames2016-02-012-0/+118
| | | | | | | | Teach LVI to handle select instructions in the exact same way it handles PHI nodes. This is useful since various parts of the optimizer convert PHI nodes into selects and we don't want these transformations to cause inferior optimization. Note that this patch does nothing to exploit the implied constraint on the inputs represented by the select condition itself. That will be a later patch and is blocked on http://reviews.llvm.org/D14476 llvm-svn: 259429
* Always build a new TypeSourceInfo for function templates with parametersNico Weber2016-02-012-16/+17
| | | | | | | | | | | | | | | | | | | | | RecursiveASTVisitor::TraverseFunctionHelper() traverses a function's ParmVarDecls by going to the function's getTypeSourceInfo if it exists, and `DEF_TRAVERSE_TYPELOC(FunctionProtoType` then goes to the function's ParmVarDecls. For a function template that doesn't have parameters that explicitly depend on the template parameter, we used to be clever and not build a new TypeSourceInfo. That meant that when an instantiation of such a template is visited, its TypeSourceInfo would point to the ParmVarDecls of the template, not of the instantiation, which then confused clients of RecursiveASTVisitor. So don't be clever for function templates that have parameters, even if none of the parameters depend on the type. Fixes PR26257. http://reviews.llvm.org/D16478 llvm-svn: 259428
* [X86][AVX512] Add support for AVX512 VMOVSD/VMOVSS shuffle decodingSimon Pilgrim2016-02-014-56/+26
| | | | llvm-svn: 259427
* MachoFile should default to using subsections_via_symbols.Pete Cooper2016-02-012-1/+29
| | | | | | | | | | | | When we parse a MachoFile, we set a number of members from the parsed file, for example, subsectionsViaSymbols. However, a number of passes, such as ObjCPass, create local copies of MachoFile and don't get the benefit of setting flags and other fields in the parser. Instead we can just give a more sensible default as the parser will definitely get the correct value from the file anyway. llvm-svn: 259426
* function names start with a lowercase letter; NFCSanjay Patel2016-02-0114-324/+324
| | | | llvm-svn: 259425
* Fix build problem by lower SmallSet<N> to a reasonable valueMatthias Braun2016-02-011-1/+1
| | | | llvm-svn: 259424
* [InstCombine] simplify masked scatter/gather intrinsics with zero masksSanjay Patel2016-02-012-7/+42
| | | | | | | | | | | A masked scatter with a zero mask means there's no store. A masked gather with a zero mask means the passthru arg is returned. This is a continuation of: http://reviews.llvm.org/rL259369 http://reviews.llvm.org/rL259392 llvm-svn: 259421
* [X86][AVX512] Add support for AVX512 VINSERTPS shuffle decodingSimon Pilgrim2016-02-013-35/+13
| | | | llvm-svn: 259420
* SmallSet/SmallPtrSet: Refuse huge Small numbersMatthias Braun2016-02-013-2/+12
| | | | | | | | | | These sets do linear searching in small mode; It is not a good idea to use huge numbers as the small value here, save people from themselves by adding a static_assert. Differential Revision: http://reviews.llvm.org/D16706 llvm-svn: 259419
* Undoing commit r259366 to debug buildbot failure.Arpith Chacko Jacob2016-02-0122-423/+74
| | | | | | > http://reviews.llvm.org/D16758 llvm-svn: 259418
* Simplify.Rafael Espindola2016-02-011-10/+1
| | | | | | | Now that we remember the StringRefs when they are first added, we can write the table in any order. llvm-svn: 259417
* [X86][SSE] Regenerated load vector + element extraction tests.Simon Pilgrim2016-02-011-22/+69
| | | | llvm-svn: 259416
* Use dyn_cast instead of static_cast.Pete Cooper2016-02-011-3/+3
| | | | | | | | | | | | | | Now that MachoFile has classof(), we can use dyn_cast instead which is actually the only safe way to handle this. Turns out this actually manifests as a bug as we were incorrectly casting instances which weren't MachoFile in to a MachoFile. Unfortunately, there's no reliable way of checking for this as it requires that the file we are looking for has a 0 at exactly the byte we need for the load of subsectionsViaSymbols. llvm-svn: 259413
* Move comments a bit closer to associated code. NFC.Chad Rosier2016-02-011-29/+25
| | | | llvm-svn: 259411
* [X86][SSE] Add AVX512 merge consecutive load testsSimon Pilgrim2016-02-013-57/+759
| | | | | | | | Add AVX512F/AVX512BW 512-bit tests. Add AVX512F tests to existing 128/256-bit tests. llvm-svn: 259410
* Code clean up; NFC.Aaron Ballman2016-02-011-4/+4
| | | | | | Patch by Alexander Riccio. llvm-svn: 259409
* [CMake] Use LLVM_MAIN_SRC_DIR instead of LLVM_SOURCE_DIR.Alexey Samsonov2016-02-013-4/+4
| | | | | | | The former will be properly initialized in standalone CMake build of compiler-rt. llvm-svn: 259407
OpenPOWER on IntegriCloud