summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make an RAII com initializer.Zachary Turner2015-04-275-0/+124
| | | | | | | Differential Revision: http://reviews.llvm.org/D9267 Reviewed By: Aaron Ballman, David Majnemer llvm-svn: 235898
* Remove trailing whitespace characters.Rui Ueyama2015-04-2754-385/+385
| | | | llvm-svn: 235897
* fix typos; NFCSanjay Patel2015-04-271-1/+1
| | | | llvm-svn: 235896
* ELF: Simplify LinkerScript detection. NFC.Rui Ueyama2015-04-271-19/+3
| | | | llvm-svn: 235895
* Make sure files in the Xcode project in source/API are in alphabetic order.Greg Clayton2015-04-271-2/+2
| | | | llvm-svn: 235894
* unwind: remove inclusion of private_typeinfo.hSaleem Abdulrasool2015-04-271-1/+0
| | | | | | | | | | This include is not currently used. It is intended for type info based switching, which is part of the EHABI specification. However, the unwinder does not currently support this functionality. This backwards dependency into libc++abi is currently causing a buildbot failure, remove it until we have a better solution. llvm-svn: 235893
* Make sure versions are valid before we try to use them. Also check for ↵Greg Clayton2015-04-271-4/+8
| | | | | | invalid versions[0] by comparing it to UINT32_MAX instead of 0. llvm-svn: 235892
* [mips] Correct bytes to bits in 2 comments. NFC.Toma Tabacu2015-04-271-2/+2
| | | | llvm-svn: 235891
* Add missing snippets from r235880Adhemerval Zanella2015-04-272-6/+6
| | | | llvm-svn: 235890
* AVX-512: added calling conventions for i1 vectors.Elena Demikhovsky2015-04-273-3/+71
| | | | | | Fixed bug: https://llvm.org/bugs/show_bug.cgi?id=20724 llvm-svn: 235889
* Improve handling of ctrl-c with MSVC.Hafiz Abid Qadeer2015-04-272-2/+14
| | | | | | | | | Currently hitting Ctrl-C in Windows LLDB-MI just exits MI. But according to test_lldbmi_stopped_when_interrupt() in TestMiSignal.py Ctrl-C should send a SIGINT signal to the inferior. Patch adds this functionality to Windows so SIGINT is sent on Ctrl-C. Patch from EwanCrawford. Reviewed in http://reviews.llvm.org/D9248. llvm-svn: 235887
* [Hexagon] Use constant extenders to fix up hardware loopsBrendon Cahoon2015-04-277-72/+150
| | | | | | | | | | Use a loop instruction with a constant extender for a hardware loop instruction that is too far away from the start of the loop. This is cheaper than changing the SA register value. Differential Revision: http://reviews.llvm.org/D9262 llvm-svn: 235882
* [mips] [IAS] Improve warning for using AT with .set noat.Toma Tabacu2015-04-272-23/+19
| | | | | | | | | | | | | | | | | Summary: Changed the warning message to show the current value of $at, similar to what clang does for typedef's, and renamed warnIfAssemblerTemporary to a more descriptive name. I also changed the type of variables which store registers from int to unsigned, updated the relevant test and tried to make the related comments clearer. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8479 llvm-svn: 235881
* ELF/ARM: Ignore R_ARM_V4BX for ARMv4 but allow linkingAdhemerval Zanella2015-04-272-0/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allow the ARM relocation R_ARM_V4BX to be processed by lld, although it is not really handled in the static relocation code. The relocation is in the form: Relocation section '.rel.text' at offset 0x428 contains 4 entries: Offset Info Type Sym.Value Sym. Name 00000014 00000028 R_ARM_V4BX Meaning it does have a direct target, but rather references to an absolute section *ABS* (in this exemple to the .text segment itself). It makes the target Atom after file parse to not have a associated pointer and thus generating a derrefence NULL point in ELFFile<ELFT>::findAtom. Current approach is just ignore and return nullptr in such cases. The problem relies that default GCC configuration for arm-linux-gnueabi{hf} emits the relocation for the asm: -- .syntax unified .arm .p2align 2 .type fn, %function fn: ldr r3, .LGOT ldr r2, .LGOT+4 .LPIC: add r3, pc, r3 ldr r2, [r3, r2] cmp r2, #0 bxeq lr b __start__ .LGOT: .word _GLOBAL_OFFSET_TABLE_-(.LPIC+8) .word __start__(GOT) -- But only with the option -march=armv4 (which is the default GCC configuration). For arm5 and forward the relocation is not created. This a special relocation (defined miscellaneous for ARM) that instruct the linker to replace the bx instruction into a mov. GNU linker has some options related to which substitution it can create for such cases. With this patch I can dynamically link an application against a GLIBC arm-linux-gnueabi system configured with default GCC. llvm-svn: 235880
* Reapply "[mips][FastISel] Implement shift ops for Mips fast-isel.""Vasileios Kalintiris2015-04-272-0/+202
| | | | | | | | This reapplies r235194, which was reverted in r235495 because it was causing a failure in our out-of-tree buildbots for MIPS. With the sign-extension patch in r235718, this patch doesn't cause any problem any more. llvm-svn: 235878
* [mips] [IAS] Rename getATRegNum and setATReg to {g,s}etATRegIndex. NFC.Toma Tabacu2015-04-271-8/+8
| | | | | | | | | | | | Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8480 llvm-svn: 235877
* AVX-512: Extend/Truncate operations for SKX,Elena Demikhovsky2015-04-275-36/+208
| | | | | | SETCC for bit-vectors llvm-svn: 235875
* Extract IslNodeBuilder into its own fileTobias Grosser2015-04-275-897/+962
| | | | | | | The IslNodeBuilder is a generic class that may be useful in other contexts as well. Hence, we extract it into its own .h/.cpp file. llvm-svn: 235873
* Drop some unused headersTobias Grosser2015-04-271-4/+1
| | | | llvm-svn: 235871
* Fix PTXGenerator after raw_pwrite_stream has been introducedTobias Grosser2015-04-271-5/+6
| | | | | | Without this patch Polly with GPGPU support enabled did not compile any more. llvm-svn: 235868
* Fix formatting issues in bannerTobias Grosser2015-04-271-3/+2
| | | | llvm-svn: 235867
* Do not expose code generator choice in the headerTobias Grosser2015-04-272-8/+4
| | | | | | | There is no need for other passes to access the code-generator command-line option. Hence, drop it from the header to simplify the interface. llvm-svn: 235866
* Fix LLDB ARM build error on ubuntu precise with gcc4.7Omair Javaid2015-04-271-1/+1
| | | | | | Differential revision: http://reviews.llvm.org/D9100 llvm-svn: 235865
* Remove unused variable, found with gcc-5.1 -Wunused-variable.Patrik Hagglund2015-04-271-25/+0
| | | | | | | The variable, MachOSectionTypes, seems to have been unused since its introduction in r178679. llvm-svn: 235863
* [MC] [IAS] Add support for the \@ .macro pseudo-variable.Toma Tabacu2015-04-273-29/+140
| | | | | | | | | | | | | | | | | | Summary: When used, it is substituted with the number of .macro instantiations we've done up to that point in time. So if this is the 1st time we've instantiated a .macro (any .macro, regardless of name), \@ will instantiate to 0, if it's the 2nd .macro instantiation, it will instantiate to 1 etc. It can only be used inside a .macro definition, an .irp definition or an .irpc definition (those last 2 uses are undocumented). Reviewers: echristo, rafael Reviewed By: rafael Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D9197 llvm-svn: 235862
* Remove flag '-polly-annotate-alias-scopes'Tobias Grosser2015-04-274-29/+1
| | | | | | | | This option is enabled since a long time and there does not seem to be a situation in which we would not want to print alias scopes. Remove this option to reduce the set of command-line option combinations that may expose bugs. llvm-svn: 235861
* Remove implementation of getNumberOfIterations from header [NFC]Tobias Grosser2015-04-272-45/+39
| | | | | | | | | | We moved this implementation into the header file to share it between the CLooG and isl code generator. As the CLooG code generator was dropped, the implementation can be folded back into the .cpp file. No functional change intended. llvm-svn: 235860
* Fix double stdout/stderr output from CLI commands in MI mode (MI)Ilia K2015-04-271-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch fixes stdout/stderr output that printed twice for CLI commands: was: ``` (gdb) target create ~/p/hello Current executable set to '~/p/hello' (x86_64). Current executable set to '~/p/hello' (x86_64). ^done (gdb) ``` now: ``` (gdb) target create ~/p/hello Current executable set to '~/p/hello' (x86_64). ^done (gdb) ``` Test Plan: ./dotest.py -v --executable $BUILDDIR/bin/lldb tools/lldb-mi/ Reviewers: abidh Reviewed By: abidh Subscribers: lldb-commits, abidh Differential Revision: http://reviews.llvm.org/D9277 llvm-svn: 235857
* Constfold insertelement to undef when index is out-of-boundsPawel Bylica2015-04-273-12/+48
| | | | | | | | | | | | | | | | | | | Summary: This patch adds constant folding of insertelement instruction to undef value when index operand is constant and is not less than vector size or is undef. InstCombine does not support this case, but I'm happy to add it there also if this change is accepted. Test Plan: Unittests and regression tests for ConstProp pass. Reviewers: majnemer Reviewed By: majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9287 llvm-svn: 235854
* Add missing libraries to unittest linkPavel Labath2015-04-271-1/+1
| | | | | | | | | | | | | | | | Summary: Currently, linking of the unittests fails on linux because it is missing a bunch of symbols from libedit, curses, etc. This fixes the build by adding the correct dependencies. Test Plan: Linking works, unit tests run. Reviewers: zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9244 llvm-svn: 235853
* Fix register read callback in linux-arm single steppingPavel Labath2015-04-271-21/+33
| | | | | | | | | | | | | | | | | | | | | The previous read callback always read the value of the register what caused problems when the emulator wrote some value into a register and then expected to read the same value back. This CL add a register value cache into the callbacks to return the correct value after a register write also. Test Plan: Stepping over BL/BLX instruction works on android-arm if the instruction set isn't change (other, unrelated patch will come for the case when we move to an other instruction set) Reviewers: omjavaid, sas, clayborg Reviewed By: clayborg Subscribers: labath, tberghammer, rengolin, aemerson, lldb-commits Differential Revision: http://reviews.llvm.org/D9187 From: Tamas Berghammer <tberghammer@google.com> llvm-svn: 235852
* XFAIL two mi tests on gcc to stabilise build botsPavel Labath2015-04-271-0/+2
| | | | llvm-svn: 235851
* [OPENMP] Simplified iteration over clauses, NFC.Alexey Bataev2015-04-274-91/+38
| | | | llvm-svn: 235838
* [X86][SSE] Add v16i8/v32i8 multiplication supportSimon Pilgrim2015-04-273-4/+221
| | | | | | | | | | Patch to allow int8 vectors to be multiplied on the SSE unit instead of being scalarized. The patch sign extends the i8 lanes to i16, uses the SSE2 pmullw multiplication instruction, then packs the lower byte from each result. Differential Revision: http://reviews.llvm.org/D9115 llvm-svn: 235837
* [OPENMP] Codegen for 'taskwait' directive.Alexey Bataev2015-04-274-2/+56
| | | | | | | | Emit the following code for 'taskwait' directive within tied task: call i32 @__kmpc_omp_taskwait(<loc>, i32 <thread_id>); Differential Revision: http://reviews.llvm.org/D9245 llvm-svn: 235836
* [OPENMP] Codegen for 'reduction' clause in 'sections' directive.Alexey Bataev2015-04-272-6/+489
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Emit a code for reduction clause. Next code should be emitted for reductions: static kmp_critical_name lock = { 0 }; void reduce_func(void *lhs[<n>], void *rhs[<n>]) { *(Type0*)lhs[0] = ReductionOperation0(*(Type0*)lhs[0], *(Type0*)rhs[0]); ... *(Type<n>-1*)lhs[<n>-1] = ReductionOperation<n>-1(*(Type<n>-1*)lhs[<n>-1], *(Type<n>-1*)rhs[<n>-1]); } ... void *RedList[<n>] = {&<RHSExprs>[0], ..., &<RHSExprs>[<n>-1]}; switch (__kmpc_reduce{_nowait}(<loc>, <gtid>, <n>, sizeof(RedList), RedList, reduce_func, &<lock>)) { case 1: <LHSExprs>[0] = ReductionOperation0(*<LHSExprs>[0], *<RHSExprs>[0]); ... <LHSExprs>[<n>-1] = ReductionOperation<n>-1(*<LHSExprs>[<n>-1], *<RHSExprs>[<n>-1]); __kmpc_end_reduce{_nowait}(<loc>, <gtid>, &<lock>); break; case 2: Atomic(<LHSExprs>[0] = ReductionOperation0(*<LHSExprs>[0], *<RHSExprs>[0])); ... Atomic(<LHSExprs>[<n>-1] = ReductionOperation<n>-1(*<LHSExprs>[<n>-1], *<RHSExprs>[<n>-1])); break; default:; } Reduction variables are a kind of a private variables, they have private copies, but initial values are chosen in accordance with the reduction operation. If sections directive has only single section, then original shared variables are used instead with barrier at the end of the directive. Differential Revision: http://reviews.llvm.org/D9242 llvm-svn: 235835
* [OPENMP] Codegen for 'lastprivate' clause in 'sections' directive.Alexey Bataev2015-04-272-5/+363
| | | | | | | | | | | | | | | | | | | | | | | | | #pragma omp sections lastprivate(<var>) <BODY>; This construct is translated into something like: <last_iter> = alloca i32 <init for lastprivates>; <last_iter> = 0 ; No initializer for simple variables or a default constructor is called for objects. ; For arrays perform element by element initialization by the call of the default constructor. ... OMP_FOR_START(...,<last_iter>, ..); sets <last_iter> to 1 if this is the last iteration. <BODY> ... OMP_FOR_END if (<last_iter> != 0) { <final copy for lastprivate>; Update original variable with the lastprivate value. } call __kmpc_cancel_barrier() ; an implicit barrier to avoid possible data race. If there is only one section, there is no special code generation, original shared variables are used + barrier is emitted at the end of the directive. Differential Revision: http://reviews.llvm.org/D9240 llvm-svn: 235834
* [OPENMP] Codegen for 'private' clause in 'sections' directive.Alexey Bataev2015-04-272-0/+194
| | | | | | | | | | | | | | | | | | If there are 2 or more sections in a 'section' directive the following code is generated: <default init for privates> @__kmpc_for_static_init_4(); <BODY for sections directive> @__kmpc_for_static_fini() If there is only one section, the following code is generated: if (@__kmpc_single()) { <default init for privates> @__kmpc_end_single(); } Differential Revision: http://reviews.llvm.org/D9239 llvm-svn: 235833
* [OPENMP] Codegen for 'private' clause in 'single' directive.Alexey Bataev2015-04-272-0/+183
| | | | | | | | | | | | Emit the following code for 'single' directive with 'private' clause: if (@__kmpc_single()) { <default init for privates> @__kmpc_end_single(); } Differential Revision: http://reviews.llvm.org/D9238 llvm-svn: 235832
* [MS ABI] Rephrase the mangling of array types in parametersDavid Majnemer2015-04-271-6/+5
| | | | | | Make the canonicalization of array types more consistent. llvm-svn: 235831
* libc++abi: remove unused variableSaleem Abdulrasool2015-04-271-2/+1
| | | | | | | The externC variable was set but unused. This constantly flagged a warning from gcc. Replace it with a comment until such a time that we need it. llvm-svn: 235830
* libc++abi: clear up some -Wqual-cast warningsSaleem Abdulrasool2015-04-272-3/+2
| | | | | | Cleans up cast qualifier warnings identified by GCC 4.9.2. llvm-svn: 235829
* libc++abi: silence some warningsSaleem Abdulrasool2015-04-271-1/+1
| | | | | | | | | Cleans up the -Wundef warning caused by the use of the __LITTLE_ENDIAN__ macro. Instead use `__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__`. `__BYTE_ORDER__` is defined by GCC since 4.2 and by clang. This avoids the undef case where a macro may be undefined. This has previously caught real errors in libunwind. llvm-svn: 235828
* [PerformanceTips] Italics are *word*, not _word_Philip Reames2015-04-261-3/+3
| | | | llvm-svn: 235827
* [PerformanceTips] Provide context on the impact of assume(x)Philip Reames2015-04-262-1/+10
| | | | | | Sean Silva suggested I add something here a while back. Sorry it's taken so long to get back to this. llvm-svn: 235826
* Add two new items to PerformanceTipsPhilip Reames2015-04-261-2/+17
| | | | | | | | 1) Turns out we're not great at recognizing redundant checks when one is a != and the other is an ==. This is a bug, but it's one that matters to frontend authors. 2) Frontends shouldn't use intrinsics unless strictly neccessary. This has been pretty widely proven by this point and is good to document. llvm-svn: 235825
* Make the message associated with a fatal error slightly more helpfulPhilip Reames2015-04-261-2/+10
| | | | | | Looking into 23095, my best guess is that the CodeGen library itself isn't getting linked and initialized properly. To make this slightly more obvious to consumers of LLVM, emit a different error message if we can tell that the registry is empty vs you've simply happened to name a collector which hasn't been registered. llvm-svn: 235824
* Use all available range information for parametersJohannes Doerfert2015-04-266-14/+22
| | | | | | | In the following even full-range information will help to avoid runtime checks for wrapping integers, hence we enable it now. llvm-svn: 235823
* Use the original no-wrap flags for normalized AddRecsJohannes Doerfert2015-04-263-5/+10
| | | | llvm-svn: 235822
* [RewriteStatepointsForGC] Exclude constant values from being considered live ↵Philip Reames2015-04-262-14/+74
| | | | | | | | | | | | at a safepoint There can be various constant pointers in the IR which do not get relocated at a safepoint. One example is the address of a global variable. Another example is a pointer created via inttoptr. Note that the optimizer itself likes to create such inttoptrs when locally propagating constants through dynamically dead code. To deal with this, we need to exclude uses of constants from contributing to the liveness of a safepoint which might reach that use. At some later date, it might be worth exploring what could be done to support the relocation of various special types of "constants", but that's future work. Differential Revision: http://reviews.llvm.org/D9236 llvm-svn: 235821
OpenPOWER on IntegriCloud