summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* It isn't meaningful for a transform to preserve another transform. NFC.Michael Kuperstein2016-06-252-10/+0
| | | | llvm-svn: 273761
* Fix bad test expectation.Peter Collingbourne2016-06-251-2/+2
| | | | llvm-svn: 273760
* [lld][MachO] Add support for x86-64 negDelta64 references and fix negDelta32.Lang Hames2016-06-253-77/+146
| | | | | | | | | | These references are used to implement MachO/x64-64 subtractor relocations where the minuend is being fixed up, rather than the subtrahend. The 64-bit version was not previously supported, the 32-bit version was partially implemented but contained bugs not caught by existing test cases. This patch fixes both functionality and test coverage. llvm-svn: 273759
* cfi: Start testing CFI in both standalone and devirtualization modes.Peter Collingbourne2016-06-256-7/+34
| | | | | | Differential Revision: http://reviews.llvm.org/D21123 llvm-svn: 273758
* CodeGen: Start emitting checked loads when both trapping CFI and ↵Peter Collingbourne2016-06-256-30/+111
| | | | | | | | -fwhole-program-vtables are enabled. Differential Revision: http://reviews.llvm.org/D21122 llvm-svn: 273757
* IR: Introduce llvm.type.checked.load intrinsic.Peter Collingbourne2016-06-2512-32/+508
| | | | | | | | | | | | | | | | This intrinsic safely loads a function pointer from a virtual table pointer using type metadata. This intrinsic is used to implement control flow integrity in conjunction with virtual call optimization. The virtual call optimization pass will optimize away llvm.type.checked.load intrinsics associated with devirtualized calls, thereby removing the type check in cases where it is not needed to enforce the control flow integrity constraint. This patch also introduces the capability to copy type metadata between global variables, and teaches the virtual call optimization pass to do so. Differential Revision: http://reviews.llvm.org/D21121 llvm-svn: 273756
* MachineScheduler: Fully compare top/bottom candidatesMatthias Braun2016-06-2522-150/+154
| | | | | | | | | | In bidirectional scheduling this gives more stable results than just comparing the "reason" fields of the top/bottom node because the reason field may be higher depending on what other nodes are in the queue. Differential Revision: http://reviews.llvm.org/D19401 llvm-svn: 273755
* Implement C++17 P0386R2, inline variables. (The 'inline' specifier gives aRichard Smith2016-06-2527-70/+371
| | | | | | | variable weak discardable linkage and partially-ordered initialization, and is implied for constexpr static data members.) llvm-svn: 273754
* Reinstate r273711David Majnemer2016-06-2510-33/+103
| | | | | | | | | | r273711 was reverted by r273743. The inliner needs to know about any call sites in the inlined function. These were obscured if we replaced a call to undef with an undef but kept the call around. This fixes PR28298. llvm-svn: 273753
* Silence a -Wsign-compare warningDavid Majnemer2016-06-251-2/+2
| | | | llvm-svn: 273752
* AMDGPU: Define a schedule class for COPY.Matthias Braun2016-06-2410-16/+39
| | | | | | | | | | COPY was lacking a scheduling class, define it to avoid regressions in the upcoming change to the bidirectional MachineScheduler. Approved by tstellar on IRC. Differential Revision: http://reviews.llvm.org/D21540 llvm-svn: 273751
* Made templates that have Enumeration values as arguments work correctly.Greg Clayton2016-06-2420-44/+158
| | | | | | | | | | We were checking for integer types only before this. So I added the ability for CompilerType objects to check for integer and enum types. Then I searched for places that were using the CompilerType::IsIntegerType(...) function. Many of these places also wanted to be checking for enumeration types as well, so I have fixed those places. These are in the ABI plug-ins where we are figuring out which arguments would go in where in regisers/stack when making a function call, or determining where the return value would live. The real fix for this is to use clang to compiler a CGFunctionInfo and then modify the code to be able to take the IR and a calling convention and have the backend answer the questions correctly for us so we don't need to create a really bad copy of the ABI in each plug-in, but that is beyond the scope of this bug fix. Also added a test case to ensure this doesn't regress in the future. llvm-svn: 273750
* Add .i files for SBMemoryRegionInfo and SBMemoryRegionInfoList and also hook ↵Greg Clayton2016-06-246-0/+131
| | | | | | | | up the new calls in SBProcess that give out SBMemoryRegionInfo and SBMemoryRegionInfoList objects. Also make sure the right headers and .i files are included so SWIG can hook everything up. llvm-svn: 273749
* [msan] Intercept eventfd_read, eventfd_write.Evgeniy Stepanov2016-06-243-0/+49
| | | | llvm-svn: 273748
* [PM] Port float2int to the new pass managerMichael Kuperstein2016-06-247-44/+98
| | | | | | Differential Revision: http://reviews.llvm.org/D21704 llvm-svn: 273747
* [sanitizer] Add syscall handlers for sigaction and rt_sigaction.Evgeniy Stepanov2016-06-243-5/+92
| | | | llvm-svn: 273746
* Hookup ProfileSummary with SampleProfilerLoaderDehao Chen2016-06-243-0/+19
| | | | | | | | | | | | Summary: Set ProfileSummary in SampleProfilerLoader. Reviewers: davidxl, eraman Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21702 llvm-svn: 273745
* [MBP] show function name in debug dumpXinliang David Li2016-06-241-0/+1
| | | | llvm-svn: 273744
* Revert r273711, it caused PR28298.Nico Weber2016-06-249-84/+33
| | | | llvm-svn: 273743
* Change mailing list names in READMEJason Henline2016-06-241-2/+2
| | | | | | | An underscore is used in the mailing list names rather than a dash, so it is parallel_libs instead of parallel-libs. llvm-svn: 273742
* [asan] Improve global-registration.c testRyan Govostes2016-06-241-6/+11
| | | | | | | Removes use of GNU language extensions from the test, and hopefully fixes the link order on Linux. llvm-svn: 273741
* Fix lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp for r273701Kevin Enderby2016-06-241-2/+5
| | | | | | and the change to libObject’s getSymbolAddress() to Expected<...> . llvm-svn: 273740
* Simplify. NFC.Rafael Espindola2016-06-241-10/+1
| | | | | | | Also delete out of date comment. This code was always returning .data since r253436. llvm-svn: 273739
* Fix unused variable warning in -asserts builds.Peter Collingbourne2016-06-241-2/+1
| | | | llvm-svn: 273737
* Fix the type signature of DwarfExpression::Add.*Constant to support values ↵Adrian Prantl2016-06-244-14/+90
| | | | | | | | | | | >32 bits. This fixes an embarrassing bug when emitting .debug_loc entries for 64-bit+ constants, which were previously silently truncated to 32 bits. <rdar://problem/26843232> llvm-svn: 273736
* Add support for musl-libc on ARM Linux.Rafael Espindola2016-06-249-11/+88
| | | | | | Patch by Lei Zhang! llvm-svn: 273735
* Fix documentation for FindAvailableLoadedValue.Eli Friedman2016-06-242-34/+25
| | | | llvm-svn: 273734
* [Hexagon] Simplify (+fix) instruction selection for indexed loads/storesKrzysztof Parzyszek2016-06-242-308/+213
| | | | llvm-svn: 273733
* [IndVarSimplify] Run clang-format over some oddly formatted bitsSanjoy Das2016-06-241-16/+15
| | | | | | NFC (whitespace only change) llvm-svn: 273732
* cfi: Apply pass rename to tests.Peter Collingbourne2016-06-241-4/+4
| | | | | | Differential Revision: http://reviews.llvm.org/D21055 llvm-svn: 273731
* CodeGen: Update Clang to use the new type metadata.Peter Collingbourne2016-06-2422-439/+420
| | | | | | Differential Revision: http://reviews.llvm.org/D21054 llvm-svn: 273730
* IR: New representation for CFI and virtual call optimization pass metadata.Peter Collingbourne2016-06-2459-1015/+893
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bitset metadata currently used in LLVM has a few problems: 1. It has the wrong name. The name "bitset" refers to an implementation detail of one use of the metadata (i.e. its original use case, CFI). This makes it harder to understand, as the name makes no sense in the context of virtual call optimization. 2. It is represented using a global named metadata node, rather than being directly associated with a global. This makes it harder to manipulate the metadata when rebuilding global variables, summarise it as part of ThinLTO and drop unused metadata when associated globals are dropped. For this reason, CFI does not currently work correctly when both CFI and vcall opt are enabled, as vcall opt needs to rebuild vtable globals, and fails to associate metadata with the rebuilt globals. As I understand it, the same problem could also affect ASan, which rebuilds globals with a red zone. This patch solves both of those problems in the following way: 1. Rename the metadata to "type metadata". This new name reflects how the metadata is currently being used (i.e. to represent type information for CFI and vtable opt). The new name is reflected in the name for the associated intrinsic (llvm.type.test) and pass (LowerTypeTests). 2. Attach metadata directly to the globals that it pertains to, rather than using the "llvm.bitsets" global metadata node as we are doing now. This is done using the newly introduced capability to attach metadata to global variables (r271348 and r271358). See also: http://lists.llvm.org/pipermail/llvm-dev/2016-June/100462.html Differential Revision: http://reviews.llvm.org/D21053 llvm-svn: 273729
* [msan] Fix syscall handlers for pipe, pipe2, socketpair.Evgeniy Stepanov2016-06-242-13/+21
| | | | | | These syscalls write two file descriptors into the output buffer, not one. llvm-svn: 273728
* [APInt] Don't shift into the sign bitDavid Majnemer2016-06-241-1/+1
| | | | llvm-svn: 273727
* Add support for musl-libc on ARM Linux.Rafael Espindola2016-06-2413-5/+69
| | | | | | Patch by Lei Zhang! llvm-svn: 273726
* [MachO] Fixing copy-paste error from r273719Chris Bieneman2016-06-241-1/+1
| | | | | | Thanks Kevin! llvm-svn: 273725
* Add missing dependency to LLVMPassesMichael Kuperstein2016-06-241-1/+1
| | | | | | Passes should depend on CodeGen, as that contains some IR-to-IR passes. llvm-svn: 273724
* [MemorySSA] Move code around a bit. NFC.George Burgess IV2016-06-242-103/+103
| | | | | | | | | | | | This patch moves MSSA's caching walker into MemorySSA, and moves the actual definition of MSSA's caching walker out of MemorySSA.h. This is done in preparation for the new walker, which should be out for review soonish. Also, this patch removes a field from UpwardsMemoryQuery and has a few lines of diff from clang-format'ing MemorySSA.cpp. llvm-svn: 273723
* [APInt] Don't shift into the sign bitDavid Majnemer2016-06-241-2/+2
| | | | | | This fixes PR28294. llvm-svn: 273722
* The Objective-C Class type should not be treated as a potential dynamic ↵Enrico Granata2016-06-241-0/+8
| | | | | | | | type, since it actually doesn't resolve to the type of the class it points to Fixes rdar://26535584 llvm-svn: 273721
* Don't run TestImageListMultiArchitecture during remote test suiteFrancis Ricci2016-06-241-0/+1
| | | | | | | | | | Reviewers: zturner, clayborg, tfiala Subscribers: sas, lldb-commits Differential Revision: http://reviews.llvm.org/D21648 llvm-svn: 273720
* [obj2yaml] [yaml2obj] Support for MachO Universal binariesChris Bieneman2016-06-248-11/+328
| | | | | | This patch adds round-trip support for MachO Universal binaries to obj2yaml and yaml2obj. Universal binaries have a header and list of architecture structures, followed by a the individual object files at specified offsets. llvm-svn: 273719
* Added a test case for bitfield ivars. It currently fails.Sean Callanan2016-06-242-0/+56
| | | | | | <rdar://problem/17990991> llvm-svn: 273718
* [ARM] Remove dead SDNodes. NFC.Ahmed Bougacha2016-06-241-7/+0
| | | | | | The opcodes are used, but only by DAG->DAG. llvm-svn: 273717
* [X86] Remove dead ISD opcodes. NFC.Ahmed Bougacha2016-06-245-18/+0
| | | | llvm-svn: 273716
* [InstCombine] use m_APInt; NFCISanjay Patel2016-06-241-18/+8
| | | | llvm-svn: 273715
* [CMake] Remove CLANG_APPEND_VC_REV optionChris Bieneman2016-06-242-13/+7
| | | | | | | | | | | | I added this option in r257827 to try and add compatibility with autoconf. At the time I misunderstood the problem. Our CMake automatically generates the SVN revision information and generates a build action to update it so builds don't need to be re-configured on SCM update (which is a better solution than we had in autoconf). The problem I was actually seeing was isolated cases where SVN revision information isn't available because the repository structures have been removed. This happens in some automated testing systems. This patch allows SVN_REVISION to be overridden if the build configuration could not find the SCM repository structures, and removes the code from my original patch because it is unnecessary. llvm-svn: 273714
* [PM] Port PreISelIntrinsicLowering to the new PMMichael Kuperstein2016-06-248-14/+52
| | | | llvm-svn: 273713
* SimplifyInstruction does not imply DCEDavid Majnemer2016-06-249-33/+84
| | | | | | | We cannot remove an instruction with no uses just because SimplifyInstruction succeeds. It may have side effects. llvm-svn: 273711
* [CodeView] Healthy paranoia around stringsDavid Majnemer2016-06-244-10/+6
| | | | | | | Make sure strings don't get too big for a record, truncate them if need-be. llvm-svn: 273710
OpenPOWER on IntegriCloud