summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [x86] add materializeVectorConstant() helper function; NFCSanjay Patel2016-01-261-15/+29
| | | | | | LowerBUILD_VECTOR is still over 300 lines long, but it's a start... llvm-svn: 258858
* [cfi] Support for dlopen and dlclose.Evgeniy Stepanov2016-01-265-41/+369
| | | | | | Add dlopen/dlclose interceptors to update CFI shadow for loaded/unloaded libraries. llvm-svn: 258857
* Fix comparison warning (r258845)Hemant Kulkarni2016-01-261-1/+1
| | | | llvm-svn: 258856
* Remove dead code missed in r258852.Eric Fiselier2016-01-261-6/+0
| | | | llvm-svn: 258855
* Fixes build break introduced by r258845Hemant Kulkarni2016-01-261-1/+1
| | | | llvm-svn: 258854
* WebAssembly NFC: update error messageJF Bastien2016-01-261-1/+2
| | | | | | I forgot to update this one in my previous patch. llvm-svn: 258853
* Fix PR26103 - Error calling is_convertible with incomplete type. Patch from ↵Eric Fiselier2016-01-262-2/+9
| | | | | | Michael Daniels. llvm-svn: 258852
* WebAssembly: don't optimize memcpy/memmove/memcpy to frame indexJF Bastien2016-01-263-20/+42
| | | | | | r258781 optimized memcpy/memmove/memcpy so the intrinsic call can return its first argument, but missed the frame index case. Teach it to ignore that case so C code doesn't assert out in these cases. llvm-svn: 258851
* Do not define GXX_RTTI macro for C.Yunzhong Gao2016-01-262-6/+9
| | | | | | | | This is same as GCC behavior (tested with GCC 4.8.2). Differential Revision: http://reviews.llvm.org/D16365 llvm-svn: 258850
* [sanitizers] extracted process management functionsMike Aizatsky2016-01-268-30/+148
| | | | | | Differential Revision: http://reviews.llvm.org/D16546 llvm-svn: 258849
* Add a missing test case for r258847.Cong Hou2016-01-261-0/+21
| | | | llvm-svn: 258848
* Allow X86::COND_NE_OR_P and X86::COND_NP_OR_E to be reversed.Cong Hou2016-01-266-70/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, AnalyzeBranch() fails non-equality comparison between floating points on X86 (see https://llvm.org/bugs/show_bug.cgi?id=23875). This is because this function can modify the branch by reversing the conditional jump and removing unconditional jump if there is a proper fall-through. However, in the case of non-equality comparison between floating points, this can turn the branch "unanalyzable". Consider the following case: jne.BB1 jp.BB1 jmp.BB2 .BB1: ... .BB2: ... AnalyzeBranch() will reverse "jp .BB1" to "jnp .BB2" and then "jmp .BB2" will be removed: jne.BB1 jnp.BB2 .BB1: ... .BB2: ... However, AnalyzeBranch() cannot analyze this branch anymore as there are two conditional jumps with different targets. This may disable some optimizations like block-placement: in this case the fall-through behavior is enforced even if the fall-through block is very cold, which is suboptimal. Actually this optimization is also done in block-placement pass, which means we can remove this optimization from AnalyzeBranch(). However, currently X86::COND_NE_OR_P and X86::COND_NP_OR_E are not reversible: there is no defined negation conditions for them. In order to reverse them, this patch defines two new CondCode X86::COND_E_AND_NP and X86::COND_P_AND_NE. It also defines how to synthesize instructions for them. Here only the second conditional jump is reversed. This is valid as we only need them to do this "unconditional jump removal" optimization. Differential Revision: http://reviews.llvm.org/D11393 llvm-svn: 258847
* [llvm-nm] Roll several conditions into a single if. NFCI.Davide Italiano2016-01-261-7/+2
| | | | llvm-svn: 258846
* [llvm-readobj] Add -elf-section-groups optionHemant Kulkarni2016-01-266-10/+110
| | | | | | | | | Adds a way to inspect SHT_GROUP sections in ELF objects. Displays signature, member sections of these sections. Differential revision: http://reviews.llvm.org/D16555 llvm-svn: 258845
* Bypass Perl modules in build systemJonathan Peyton2016-01-267-17/+33
| | | | | | | | | This change fixes the bug: https://llvm.org/bugs/show_bug.cgi?id=25975 by bypassing the perl module files which try to deduce system information. These perl modules files don't offer useful information and are from the original build system. They can be removed after this change. llvm-svn: 258843
* [ScheduleDAGInstrs] Simplify logic to improve readability. NFC.Chad Rosier2016-01-261-2/+1
| | | | | | The call to isInvariantLoad() already returns false for non-load instructions. llvm-svn: 258841
* [MS ABI] Allow a member pointers' converted type to changeDavid Majnemer2016-01-2613-9/+76
| | | | | | | | | | | | | | | | | | | | | | | | Member pointers in the MS ABI are tricky for a variety of reasons. The size of a member pointer is indeterminate until the program reaches a point where the representation is required to be known. However, *pointers* to member pointers may exist without knowing the pointee type's representation. In these cases, we synthesize an opaque LLVM type for the pointee type. However, we can be in a situation where the underlying member pointer's representation became known mid-way through the program. To account for this, we attempted to manicure CodeGen's type-cache so that we can replace the opaque member pointer type with the real deal while leaving the pointer types unperturbed. This, unfortunately, is a problematic approach to take as we will violate CodeGen's invariants. These violations are mostly harmless but let's do the right thing instead: invalidate the type-cache if a member pointer's LLVM representation changes. This fixes PR26313. llvm-svn: 258839
* tidy up; NFCSanjay Patel2016-01-261-9/+9
| | | | llvm-svn: 258838
* [llvm-nm] Simplify. No functional changes intended.Davide Italiano2016-01-261-4/+3
| | | | llvm-svn: 258837
* Fix Clang-tidy modernize-use-nullptr warnings; other minor fixes.Eugene Zelenko2016-01-268-37/+30
| | | | | | Differential revision: http://reviews.llvm.org/D16567 llvm-svn: 258836
* Test commit. Fix typo in comment.Jonathan Coe2016-01-261-1/+1
| | | | llvm-svn: 258835
* Class Property: parse property attribute (class).Manman Ren2016-01-267-9/+87
| | | | | | | | | This is the third patch in a series of patches to support class properties in addition to instance properties in objective-c. rdar://23891898 llvm-svn: 258834
* [x86] simplify getOnesVector() ; NFCISanjay Patel2016-01-261-20/+11
| | | | | | | Let DAG.getConstant() handle the splatting; there's no need to repeat that logic here. llvm-svn: 258833
* [OpenMP] Parsing + sema for target parallel directive.Arpith Chacko Jacob2016-01-2638-6/+2219
| | | | | | | | | | | | | Summary: This patch adds parsing + sema for the target parallel directive and its clauses along with testcases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16553 Rebased to current trunk and updated test cases. llvm-svn: 258832
* Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; ↵Eugene Zelenko2016-01-2621-123/+106
| | | | | | | | other minor fixes. Differential revision: reviews.llvm.org/D16568 llvm-svn: 258831
* Reassociate: Reprocess RedoInsts after each instAditya Nandakumar2016-01-264-33/+101
| | | | | | | | | | Previously the RedoInsts was processed at the end of the block. However it was possible that it left behind some instructions that were not canonicalized. This should guarantee that any previous instruction in the basic block is canonicalized before we process a new instruction. llvm-svn: 258830
* Fix Clang-tidy modernize-use-nullptr warnings in include/lld/Core/range.h; ↵Eugene Zelenko2016-01-261-6/+8
| | | | | | | | other minor fixes. Differential revision: http://reviews.llvm.org/D16565 llvm-svn: 258829
* [x86, AVX] tighten checksSanjay Patel2016-01-261-26/+59
| | | | llvm-svn: 258828
* Update wasm target for r258819.Benjamin Kramer2016-01-261-1/+1
| | | | llvm-svn: 258827
* Update the comments for the macho-invalid-zero-ncmds test and fixKevin Enderby2016-01-262-2/+10
| | | | | | | | llvm-objdump when printing the Mach Header to print the unknown cputype and cpusubtype fields as decimal instead of not printing them at all. And change the test to check for that. llvm-svn: 258826
* fix formatting; NFCSanjay Patel2016-01-261-2/+1
| | | | llvm-svn: 258825
* Use instance_properties instead of properties. NFC.Manman Ren2016-01-2613-40/+45
| | | | | | | | | | | All current properties are instance properties. This is the second patch in a series of patches to support class properties in addition to instance properties in objective-c. rdar://23891898 llvm-svn: 258824
* [CUDA] Add -fcuda-allow-variadic-functions.Justin Lebar2016-01-265-9/+26
| | | | | | | | | | | | | | | | | Summary: Turns out the variadic function checking added in r258643 was too strict for some existing users; give them an escape valve. When -fcuda-allow-variadic-functions is passed, the front-end makes no attempt to disallow C-style variadic functions. Calls to va_arg are still not allowed. Reviewers: tra Subscribers: cfe-commits, jhen, echristo, bkramer Differential Revision: http://reviews.llvm.org/D16559 llvm-svn: 258822
* Revert r258546.Saleem Abdulrasool2016-01-262-2/+0
| | | | | | | | | Seems that the patch was rebased on top of another change which obsoleted the change but wasnt caught. Thanks to nbjoerg for pointing this out! llvm-svn: 258821
* don't repeat names in documentation comments; NFCSanjay Patel2016-01-262-164/+138
| | | | llvm-svn: 258820
* Update for LLVM changeBenjamin Kramer2016-01-263-6/+6
| | | | llvm-svn: 258819
* Reflect the MC/MCDisassembler split on the include/ level.Benjamin Kramer2016-01-2630-43/+43
| | | | | | No functional change, just moving code around. llvm-svn: 258818
* [OpenMP] Parsing + sema for defaultmap clause.Arpith Chacko Jacob2016-01-2617-0/+347
| | | | | | | | | | | Summary: This patch adds parsing + sema for the defaultmap clause associated with the target directive (among others). Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16527 llvm-svn: 258817
* [LibCallSimplifier] fold memset(malloc(x), 0, x) --> calloc(1, x)Sanjay Patel2016-01-262-0/+92
| | | | | | | | | | | | | This is a step towards solving PR25892: https://llvm.org/bugs/show_bug.cgi?id=25892 It won't handle the reported case. As noted by the 'TODO' comments in the patch, we need to relax the hasOneUse() constraint and also match patterns that include memset_chk() and the llvm.memset() intrinsic in addition to memset(). Differential Revision: http://reviews.llvm.org/D16337 llvm-svn: 258816
* Revert "[Driver] Make sure -fno-math-builtin option is being passed by the ↵Chad Rosier2016-01-263-6/+3
| | | | | | | | driver." This reverts commit r258814. llvm-svn: 258815
* [Driver] Make sure -fno-math-builtin option is being passed by the driver.Chad Rosier2016-01-263-3/+6
| | | | | | | | | | Support for the -fno-math-builtin option was added in r186899. The codegen side is being tested in test/CodeGen/nomathbuiltin.c. The missing part was just passing the option through the driver. PR26317 llvm-svn: 258814
* [Driver] Update FIXME comment now that PR4941 has been addressed.Chad Rosier2016-01-261-1/+1
| | | | | | The actual fix should be addressed by someone who can test on Darwin. llvm-svn: 258813
* Revert "Reapply commit r258404 with fix"Matthew Simpson2016-01-262-244/+24
| | | | | | | | This commit exposes a crash in computeKnownBits on the Chromium buildbots. Reverting to investigate. Reference: https://llvm.org/bugs/show_bug.cgi?id=26307 llvm-svn: 258812
* Re-submit r256008 "Improve DWARFDebugFrame::parse to also handle __eh_frame."Igor Laevsky2016-01-2611-305/+246
| | | | | | | Originally this change was causing failures on windows buildbots. But those problems were fixed in r258806. llvm-svn: 258811
* [WebAssembly] Fix a typo in a comment.Dan Gohman2016-01-261-1/+1
| | | | llvm-svn: 258810
* Unique phi write accessesMichael Kruse2016-01-2614-89/+233
| | | | | | | | | | | | | | | | | | | Ensure that there is at most one phi write access per PHINode and ScopStmt. In particular, this would be possible for non-affine subregions with multiple exiting blocks. We replace multiple MAY_WRITE accesses by one MUST_WRITE access. The written value is constructed using a PHINode of all exiting blocks. The interpretation of the PHI WRITE's "accessed value" changed from the incoming value to the PHI like for PHI READs since there is no unique incoming value. Because region simplification shuffles around PHI nodes -- particularly with exit node PHIs -- the PHINodes at analysis time does not always exist anymore in the code generation pass. We instead remember the incoming block/value pair in the MemoryAccess. Differential Revision: http://reviews.llvm.org/D15681 llvm-svn: 258809
* Unique value read accessesMichael Kruse2016-01-262-39/+49
| | | | | | | | | | | Keep at most one value read MemoryAccess per value and statement; multiple generated loads do not have any additional effect. As one such MemoryAccess can cater multiple uses within the statement, the AccessInstruction property is not unique any more and set to nullptr. Differential Revision: http://reviews.llvm.org/D15510 llvm-svn: 258808
* Unique value write accessesMichael Kruse2016-01-264-14/+35
| | | | | | | | | | | | | | | Ensure there is at most one write access per definition of an llvm::Value. Keep track of already created value write access by using a (dense) map. Replace addValueWriteAccess by ensureValueStore which can be uses more liberally without worrying to add redundant accesses. It will be used, e.g. in a logical correspondant for value reads -- ensureValueReload -- to ensure that the expected definition has been written when loading it. Differential Revision: http://reviews.llvm.org/D15483 llvm-svn: 258807
* [DebugInfo] Fix DWARFDebugFrame instruction operand orderingIgor Laevsky2016-01-261-6/+14
| | | | | | | | We can't rely on the evalution order of function arguments. Differential Revision: http://reviews.llvm.org/D16509 llvm-svn: 258806
* [OPENMP 4.5] Allow arrays in 'reduction' clause.Alexey Bataev2016-01-2615-137/+363
| | | | | | OpenMP 4.5, alogn with array sections, allows to use variables of array type in reductions. llvm-svn: 258804
OpenPOWER on IntegriCloud