summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Start deciding earlier what to link.Rafael Espindola2015-11-308-80/+138
| | | | | | | | | | | | | | | | | | | | | | A traditional linker is roughly split in symbol resolution and "copying stuff". The two tasks are badly mixed in lib/Linker. This starts splitting them apart. With this patch there are no direct call to linkGlobalValueBody or linkGlobalValueProto. Everything is linked via WapValue. This also includes a few fixes: * A GV goes undefined if the comdat is dropped (comdat11.ll). * We error if an internal GV goes undefined (comdat13.ll). * We don't link an unused comdat. The first two match the behavior of an ELF linker. The second one is equivalent to running globaldce on the input. llvm-svn: 254336
* Have 'optnone' respect the -fast-isel=false option.Paul Robinson2015-11-306-10/+24
| | | | | | | | This is primarily useful for debugging optnone v. ISel issues. Differential Revision: http://reviews.llvm.org/D14792 llvm-svn: 254335
* [X86] Update test/CodeGen/X86/avg.ll with the help of ↵Cong Hou2015-11-301-250/+347
| | | | | | update_llc_test_checks.py. NFC. llvm-svn: 254334
* AMDGPU: Fix unused functionMatt Arsenault2015-11-301-5/+0
| | | | llvm-svn: 254333
* AMDGPU: Error if too many user SGPRs usedMatt Arsenault2015-11-302-0/+8
| | | | llvm-svn: 254332
* AMDGPU: Rework how private buffer passed for HSAMatt Arsenault2015-11-3021-297/+1000
| | | | | | | | | | | | | | | | If we know we have stack objects, we reserve the registers that the private buffer resource and wave offset are passed and use them directly. If not, reserve the last 5 SGPRs just in case we need to spill. After register allocation, try to pick the next available registers instead of the last SGPRs, and then insert copies from the inputs to the reserved registers in the progloue. This also only selectively enables all of the input registers which are really required instead of always enabling them. llvm-svn: 254331
* AMDGPU: Rename enums to be consistent with HSA code object terminologyMatt Arsenault2015-11-305-50/+49
| | | | llvm-svn: 254330
* AMDGPU: Remove SIPrepareScratchRegsMatt Arsenault2015-11-3019-281/+827
| | | | | | | | | | | | | | | | | | | | | | It does not work because of emergency stack slots. This pass was supposed to eliminate dummy registers for the spill instructions, but the register scavenger can introduce more during PrologEpilogInserter, so some would end up left behind if they were needed. The potential for spilling the scratch resource descriptor and offset register makes doing something like this overly complicated. Reserve registers to use for the resource descriptor and use them directly in eliminateFrameIndex. Also removes creating another scratch resource descriptor when directly selecting scratch MUBUF instructions. The choice of which registers are reserved is temporary. For now it attempts to pick the next available registers after the user and system SGPRs. llvm-svn: 254329
* AMDGPU: Use assert zext for workgroup sizesMatt Arsenault2015-11-303-10/+84
| | | | llvm-svn: 254328
* ScopInfo: Further simplify codeTobias Grosser2015-11-301-2/+1
| | | | | | | | Acc==MA implies Acc->getAccessInstruction() == MA->getAccessInstruction(). Suggested as post-commit review for 254305 by Michael Kruse. llvm-svn: 254327
* ELF: Make comments consistent.Rui Ueyama2015-11-301-7/+0
| | | | | | | In other places, we don't have the comment. Absence of check{Int,UInt} is the sign that no overflow check is needed. llvm-svn: 254326
* [ARM] For old thumb ISA like v4t, we cannot use PC directly in pop.Quentin Colombet2015-11-302-22/+28
| | | | | | Fix the epilogue emission to account for that. llvm-svn: 254325
* Avoid writing to source directory of testsReid Kleckner2015-11-301-1/+1
| | | | llvm-svn: 254324
* [MS Compat] Adjust thiscall to cdecl when deducing template argumentsDavid Majnemer2015-11-302-2/+24
| | | | | | | | | | Function types can be extracted from member pointer types. However, the type is not appropriate without first adjusting the calling convention. This fixes PR25661. llvm-svn: 254323
* Fix honoring of OMP_THREAD_LIMIT in the teams constructJonathan Peyton2015-11-301-7/+36
| | | | | | | | | | | | Fix for crash in the teams construct in case user sets OMP_THREAD_LIMIT to a number less than the number of processors. Now the number of threads will be silently reduced if the user didn't specify teams parameters or with a warning if the user specified teams parameters conflicting with OMP_THREAD_LIMIT. Differential Revision: http://reviews.llvm.org/D14732 llvm-svn: 254322
* Fix crash when __kmp_task_team_setup called for single threaded teamJonathan Peyton2015-11-301-20/+21
| | | | | | | | | | | The task_team pointer is dereferenced unconditionally which causes a SEGFAULT when it is NULL (e.g. for serialized parallel, that can happen for "teams" construct or for "target nowait"). The solution is to skip second task team setup for single thread team. Differential Revision: http://reviews.llvm.org/D14729 llvm-svn: 254321
* Adding Hwloc library option for affinity mechanismJonathan Peyton2015-11-3018-138/+789
| | | | | | | | | | | | | | | | | | | These changes allow libhwloc to be used as the topology discovery/affinity mechanism for libomp. It is supported on Unices. The code additions: * Canonicalize KMP_CPU_* interface macros so bitmask operations are implementation independent and work with both hwloc bitmaps and libomp bitmaps. So there are new KMP_CPU_ALLOC_* and KMP_CPU_ITERATE() macros and the like. These are all in kmp.h and appropriately placed. * Hwloc topology discovery code in kmp_affinity.cpp. This uses the hwloc interface to create a libomp address2os object which the rest of libomp knows how to handle already. * To build, use -DLIBOMP_USE_HWLOC=on and -DLIBOMP_HWLOC_INSTALL_DIR=/path/to/install/dir [default /usr/local]. If CMake can't find the library or hwloc.h, then it will tell you and exit. Differential Revision: http://reviews.llvm.org/D13991 llvm-svn: 254320
* [compiler-rt] Remove SANITIZER_AARCH64_VMA usageAdhemerval Zanella2015-11-3014-75/+30
| | | | | | | | | | | | This patch complete removed SANITIZER_AARCH64_VMA definition and usage. AArch64 ports now supports runtime VMA detection and instrumentation for 39 and 42-bit VMA. It also Rewrite print_address to take a variadic argument list (the addresses to print) and adjust the tests which uses it to the new signature. llvm-svn: 254319
* [SimplifyLibCalls] Remove useless bits of this tests.Davide Italiano2015-11-301-6/+6
| | | | llvm-svn: 254318
* [SimplifyLibCalls] Transform log(exp2(y)) to y*log(2) under fast-math.Davide Italiano2015-11-303-1/+35
| | | | llvm-svn: 254317
* [CMake] Moving -fvisibility-inlines-hidden append as per post-commit reviewChris Bieneman2015-11-302-1/+1
| | | | | | Thanks Alexey. llvm-svn: 254316
* [X86] Add RIP to GR64_TCW64David Majnemer2015-11-303-2/+18
| | | | | | | | | The MachineVerifier wants to check that the register operands of an instruction belong to the instruction's register class. RIP-relative control flow instructions violated this by referencing RIP. While this was fixed for SysV, it was never fixed for Win64. llvm-svn: 254315
* Enable shrink wrapping for PPC64Kit Barton2015-11-302-7/+14
| | | | | | | | | | | Re-enable shrink wrapping for PPC64 Little Endian. One minor modification to PPCFrameLowering::findScratchRegister was necessary to handle fall-thru blocks (blocks with no terminator) correctly. Tested with all LLVM test, clang tests, and the self-hosting build, with no problems found. PHabricator: http://reviews.llvm.org/D14778 llvm-svn: 254314
* Fix another llvm.ctors merging bug.Rafael Espindola2015-11-303-2/+18
| | | | | | | We were not looking past casts to see if an element should be included or not. llvm-svn: 254313
* [WebAssembly] Fix a few minor compiler warnings. NFC.Dan Gohman2015-11-301-7/+7
| | | | llvm-svn: 254311
* fix formatting; NFCSanjay Patel2015-11-301-6/+7
| | | | llvm-svn: 254310
* [ELF] - Split RelocationSection<ELFT>::writeTo function.George Rimar2015-11-302-19/+29
| | | | | | | | Splitted writeTo to separate tls relocs handling stuff which is too long for one method now. NFC. Differential revision: http://reviews.llvm.org/D15012 llvm-svn: 254309
* [CMake] Add -fvisibility-inlines-hidden if the compiler supports it.Chris Bieneman2015-11-301-0/+6
| | | | | | This results in a significant reduction in the size of the sanitizer libraries. llvm-svn: 254308
* [Hexagon] NFC Reordering headers.Colin LeMahieu2015-11-301-1/+1
| | | | llvm-svn: 254307
* Add --gcc-toolchain= to one of the libclang unitests to fix issue related to Samuel Antao2015-11-301-1/+2
| | | | | | | the gcc libraries clang picks for when it was configures with a user defined path. llvm-svn: 254306
* ScopInfo: Replace while/iterator construct with std::remove_ifTobias Grosser2015-11-301-21/+9
| | | | | | | | | | | The use of C++'s high-level iterator functionality instead of two while loops and explicit iterator handling improves readability of this code. Proposed-by: Michael Kruse <llvm@meinersbur.de> Differential Revision: http://reviews.llvm.org/D15068 llvm-svn: 254305
* AMDGPU: Don't reserve SCRATCH_PTR input registerMatt Arsenault2015-11-302-13/+5
| | | | | | This hasn't been doing anything since using relocations was added. llvm-svn: 254304
* Do not crash when dumping the objc_bridge_related attribute when its ↵Aaron Ballman2015-11-303-2/+8
| | | | | | | | optional arguments are not supplied. Patch thanks to Joe Ranieri! llvm-svn: 254303
* Silencing a 32-bit to 64-bit implicit conversion warning; NFC.Aaron Ballman2015-11-301-1/+1
| | | | llvm-svn: 254302
* [sanitizer] Detect an invalid answer in AtosSymbolizerKuba Brecka2015-11-301-0/+6
| | | | | | | | On OS X, in AtosSymbolizer, if the answer from atos doesn't contain module name, let's bail and return false. There are some cases where this is beneficial, because we'll try DlAddrSymbolizer next (it's next in the symbolizer chain), which might be able to symbolize something that atos couldn't. Differential Revision: http://reviews.llvm.org/D15071 llvm-svn: 254301
* [tsan] Change comments referencing code.google.com to point to GitHub ↵Kuba Brecka2015-11-3010-10/+10
| | | | | | | | | | instead. NFC. Changing comments that have references to code.google.com to point to GitHub instead, because the current links are not redirected properly (they instead redirect to different issues, mostly ASan). NFC. Differential Revision: http://reviews.llvm.org/D15053 llvm-svn: 254300
* [tsan] Fix signals and setjmp/longjmp on OS XKuba Brecka2015-11-303-4/+13
| | | | | | | | | | 1) There's a few wrongly defined things in tsan_interceptors.cc, 2) a typo in tsan_rtl_amd64.S which calls setjmp instead of sigsetjmp in the interceptor, and 3) on OS X, accessing an mprotected page results in a SIGBUS (and not SIGSEGV). Differential Revision: http://reviews.llvm.org/D15052 llvm-svn: 254299
* [tsan] Fix weakly imported functions on OS XKuba Brecka2015-11-308-19/+22
| | | | | | | | | | On OS X, for weak function (that user can override by providing their own implementation in the main binary), we need extern `"C" SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE NOINLINE`. Fixes a broken test case on OS X, java_symbolization.cc, which uses a weak function __tsan_symbolize_external. Differential Revision: http://reviews.llvm.org/D14907 llvm-svn: 254298
* [mips][microMIPS] Implement LBUX, LHX, LWX, MAQ_S[A].W.PHL, MAQ_S[A].W.PHR, ↵Hrvoje Varga2015-11-305-11/+97
| | | | | | | | MFHI, MFLO, MTHI and MTLO instructions Differential Revision: http://reviews.llvm.org/D14436 llvm-svn: 254297
* [mips][microMIPS] Fix issue with offset operand of BALC and BC instructionsZoran Jovanovic2015-11-306-6/+54
| | | | | | | Value of offset operand for microMIPS BALC and BC instructions is currently shifted 2 bits, but it should be 1 bit. Differential Revision: http://reviews.llvm.org/D14770 llvm-svn: 254296
* AVX512: regenerate avx512bw intrincics tests results.Igor Breger2015-11-301-470/+879
| | | | | | Differential Revision: http://reviews.llvm.org/D15069 llvm-svn: 254295
* [RS] Support RenderScript struct allocationsEwan Crawford2015-11-302-116/+409
| | | | | | | | | | | | This patch adds functionality for dumping allocations of struct elements. This involves: + Jitting the runtime for details on all the struct fields. + Finding the name of the struct type by looking for a global variable of the same type, which will have been reflected back to the java host code. + Using this struct type name to pass into expression evaluation for pretty printing the data for the dump command. llvm-svn: 254294
* [mips][ias] Removed MSA instructions from base architecture valid-xfail.s's.Daniel Sanders2015-11-307-330/+62
| | | | | | | valid-xfail.s is for instructions that should be valid in the given ISA but incorrectly fail. MSA instructions are correct to fail since MSA is not enabled. llvm-svn: 254293
* [asan] Old Linux kernels (< 3.0) don't define ARM_VFPREGS_SIZE that leads toYury Gribov2015-11-301-0/+8
| | | | | | | | | | build errors on ARM. Define it internally to avoid such errors. Patch by Max Ostapenko. Differential Revision: http://reviews.llvm.org/D14921 llvm-svn: 254292
* [mips][microMIPS] Implement PRECR.QB.PH, PRECR_SRA[_R].PH.W, PRECRQ.PH.W, ↵Zlatko Buljan2015-11-307-7/+63
| | | | | | | | PRECRQ.QB.PH, PRECRQU_S.QB.PH and PRECRQ_RS.PH.W instructions Differential Revision: http://reviews.llvm.org/D14605 llvm-svn: 254291
* Last bit of P0006; mark it as completeMarshall Clow2015-11-303-1/+13
| | | | llvm-svn: 254290
* Fix bugs in alignment_of_v, etc. Re-enable the newly added testsMarshall Clow2015-11-304-19/+19
| | | | llvm-svn: 254289
* Temporarily disable new tests while I figure out what's going onMarshall Clow2015-11-303-19/+19
| | | | llvm-svn: 254288
* Fix bad macrosMarshall Clow2015-11-301-1/+1
| | | | llvm-svn: 254287
* Missing file from last commitMarshall Clow2015-11-301-0/+33
| | | | llvm-svn: 254286
OpenPOWER on IntegriCloud