summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add link to github x86-psABI repo where the ABI doc is being Jason Molenda2015-01-261-0/+1
| | | | | | revised. llvm-svn: 227083
* Revert "[mips] Fix assertion on i128 addition/subtraction on MIPS64"Vasileios Kalintiris2015-01-264-226/+5
| | | | | | | | This reverts commit r227003. Support for addition/subtraction and various other operations for the i128 data type will be added in a future commit based on the review D7143. llvm-svn: 227082
* path.data() may return a non null terminated stringJean-Daniel Dupas2015-01-262-2/+2
| | | | | | and raw_fd_ostream constructor expects a StringRef. llvm-svn: 227081
* Revert llvm/test/MC/ELF/noexec.s in r227074, "Fix a problem where the ↵NAKAMURA Takumi2015-01-261-1/+0
| | | | | | | | AArch64 ELF assembler was failing with" It should be split into target-specific location. llvm-svn: 227080
* [X86] Add AVX512 integer comparison intrinsics for word and byte vectors.Craig Topper2015-01-262-0/+619
| | | | llvm-svn: 227079
* [msan] Remove MSanDR reference from the manual.Evgeniy Stepanov2015-01-261-9/+1
| | | | | | It is no longer supported. llvm-svn: 227078
* SLPVectorizer: fix wrong scheduling of atomic load/stores.Erik Eckstein2015-01-262-1/+43
| | | | | | This fixes PR22306. llvm-svn: 227077
* Correct the header guard for MipsABIInfo.h.Eric Christopher2015-01-261-2/+2
| | | | llvm-svn: 227076
* [X86] Add more of the AVX512 integer comparision intrinsics. This adds 128 ↵Craig Topper2015-01-263-0/+1258
| | | | | | and 256 bit vectors of dwords and qwords. llvm-svn: 227075
* Fix a problem where the AArch64 ELF assembler was failing withEric Christopher2015-01-262-1/+3
| | | | | | | | | -no-exec-stack. This was due to it not deriving from the correct asm info base class and missing the override for the exec stack section query. Added another line to the noexec test line to make sure this doesn't regress. llvm-svn: 227074
* Don't let virtual calls and dynamic casts call Sema::MarkVTableUsed().Nico Weber2015-01-2612-69/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang currently calls MarkVTableUsed() for classes that get their virtual methods called or that participate in a dynamic_cast. This is unnecessary, since CodeGen only emits vtables when it generates constructor, destructor, and vtt code. (*) Note that Sema::MarkVTableUsed() doesn't cause the emission of a vtable. Its main user-visible effect is that it instantiates virtual member functions of template classes, to make sure that if codegen decides to write a vtable all the entries in the vtable are defined. While this shouldn't change the behavior of codegen (other than being faster), it does make clang more permissive: virtual methods of templates (in particular destructors) end up being instantiated less often. In particular, classes that have members that are smart pointers to incomplete types will now get their implicit virtual destructor instantiated less frequently. For example, this used to not compile but does now compile: template <typename T> struct OwnPtr { ~OwnPtr() { static_assert((sizeof(T) > 0), "TypeMustBeComplete"); } }; class ScriptLoader; struct Base { virtual ~Base(); }; struct Sub : public Base { virtual void someFun() const {} OwnPtr<ScriptLoader> m_loader; }; void f(Sub *s) { s->someFun(); } The more permissive behavior matches both gcc (where this is not often observable, since in practice most things with virtual methods have a key function, and Sema::DefineUsedVTables() skips vtables for classes with key functions) and cl (which is my motivation for this change) – this fixes PR20337. See this issue and the review thread for some discussions about optimizations. This is similar to r213109 in spirit. r225761 was a prerequisite for this change. Various tests relied on "a->f()" marking a's vtable as used (in the sema sense), switch these to just construct a on the stack. This forces instantiation of the implicit constructor, which will mark the vtable as used. (*) The exception is -fapple-kext mode: In this mode, qualified calls to virtual functions (`a->Base::f()`) still go through the vtable, and since the vtable pointer off this doesn't point to Base's vtable, this needs to reference Base's vtable directly. To keep this working, keep referencing the vtable for virtual calls in apple kext mode. llvm-svn: 227073
* Test that member functions of constexpr constructed templates are instantiated.Nico Weber2015-01-261-1/+14
| | | | | | | They are referenced from the vtable. (This worked fine, but I couldn't find an existing test for this. Maybe I didn't look hard enough.) llvm-svn: 227072
* Remove -verify from a codegen test that didn't have any expected-foo lines.Nico Weber2015-01-261-1/+1
| | | | | | | Makes the error output of the test more readable when it fails. Also allows removing a "not" from the run line. llvm-svn: 227071
* clang-format two Decl* code locations, NFC.Yaron Keren2015-01-261-6/+5
| | | | llvm-svn: 227070
* Reword comment.Nico Weber2015-01-262-8/+6
| | | | llvm-svn: 227069
* Test that qualified virtual calls mark vtables referenced in apple kext mode.Nico Weber2015-01-262-7/+66
| | | | | | | I broke this locally while working on PR20337 and no test caught that. Now there's coverage for this, and a comment explaining why this is needed. llvm-svn: 227068
* [X86] Add AVX512F integer comparision intrinsics to header file.Craig Topper2015-01-252-0/+575
| | | | llvm-svn: 227067
* [X86] Add immediate range checking to AVX512 integer comparision builtins.Craig Topper2015-01-251-0/+24
| | | | llvm-svn: 227066
* [X86] Add AVX512 floating cmpgt and integer comparison builtins. Intrinsic ↵Craig Topper2015-01-251-0/+37
| | | | | | header file usages coming later. llvm-svn: 227065
* [X86] Change comparision immediate type to i8 in test cases for AVX512 ↵Craig Topper2015-01-251-4/+4
| | | | | | floating point comparisons. The type was already changed in the definitions and was being auto upgraded to the new type. llvm-svn: 227064
* [X86] Use i8 immediate for comparison type on AVX512 packed integer ↵Craig Topper2015-01-256-432/+507
| | | | | | instructions. This matches floating point equivalents. Includes autoupgrade support to convert old code. llvm-svn: 227063
* Allows Clang to use LLVM's fixes-x18 optionRenato Golin2015-01-253-0/+11
| | | | | | | | | | | | | This patch allows clang to have llvm reserve the x18 platform register on AArch64. FreeBSD will use this in the kernel for per-cpu data but has no need to reserve this register in userland so will need this flag to reserve it. This uses llvm r226664 to allow this register to be reserved. Patch by Andrew Turner. llvm-svn: 227062
* clang/test/Driver/rewrite-map-in-diagnostics.c: This depends on crash-recovery.NAKAMURA Takumi2015-01-251-0/+2
| | | | llvm-svn: 227061
* Add the triple for the Sony Playstation®4.Alex Rosenberg2015-01-252-1/+17
| | | | | | Lots more to follow. llvm-svn: 227060
* [Mips] Add checking of disassembler output in some test casesSimon Atanasyan2015-01-256-116/+110
| | | | | | No functional changes. llvm-svn: 227059
* [Mips] Teach LLD to recognize one more MIPS target triple - mips64elSimon Atanasyan2015-01-2524-76/+942
| | | | | | | | | | | | This is initial patch to support MIPS64 object files linking. The patch just makes some classes more generalized, and rejects attempts to interlinking O32 and N64 ABI object files. I try to reuse the current MIPS target related classes as much as possible because O32 and N64 MIPS ABI are tightly related and share almost the same set of relocations, GOT, flags etc. llvm-svn: 227058
* [FIX] Independent blocks with intrinsics handlingJohannes Doerfert2015-01-255-5/+33
| | | | | | Also an old option was removed from some new test cases llvm-svn: 227057
* Debug info: Fix PR22296 by omitting the DW_AT_location if we lost theAdrian Prantl2015-01-253-4/+383
| | | | | | | | | | | physical register that is described in a DBG_VALUE. In the testcase the DBG_VALUE describing "p5" becomes unavailable because the register its address is in is clobbered and we (currently) aren't smart enough to realize that the value is rematerialized immediately after the DBG_VALUE and/or is actually a stack slot. llvm-svn: 227056
* [PowerPC] Revert ppc64le-aggregates.ll test changes from r227053Bill Schmidt2015-01-251-3/+0
| | | | | | | | | | | | | | | | | | | | | | | It appears we have different behavior with and without -mcpu=pwr8 even with ppc64le defaulting to POWER8. The failure appears as follows: /home/bb/cmake-llvm-x86_64-linux/llvm-project/llvm/test/CodeGen/PowerPC/ppc64le-aggregates.ll:268:14: error: expected string not found in input ; CHECK-DAG: lfs 1, 0([[REG]]) ^ <stdin>:497:11: note: scanning from here ld 3, .LC1@toc@l(3) ^ <stdin>:497:11: note: with variable "REG" equal to "3" ld 3, .LC1@toc@l(3) ^ <stdin>:514:2: note: possible intended match here lfs 1, 0(4) ^ Reverting this particular test case change. Nemanja, please have a look at the reason for the failure. llvm-svn: 227055
* Support for math/misc intrinsicsJohannes Doerfert2015-01-257-2/+515
| | | | | | | | | The support is currently limited as we only allow them in the input but do not emit them in the transformed SCoP due to the possible semantic changes. Differential Revision: http://reviews.llvm.org/D5225 llvm-svn: 227054
* [PowerPC] Reset the baseline for ppc64le to be equivalent to pwr8Bill Schmidt2015-01-254-14/+42
| | | | | | | | | | | | | | | | | | | | | Test by Nemanja Ivanovic. Since ppc64le implies POWER8 as a minimum, it makes sense that the same features are included. Since the pwr8 processor model will likely be getting new features until the implementation is complete, I created a new list to add these updates to. This will include them in both pwr8 and ppc64le. Furthermore, it seems that it would make sense to compose the feature lists for other processor models (pwr3 and up). Per discussion in the review, I will make this change in a subsequent patch. In order to test the changes, I've added an additional run step to test cases that specify -march=ppc64le -mcpu=pwr8 to omit the -mcpu option. Since the feature lists are the same, the behaviour should be unchanged. llvm-svn: 227053
* Sema: Formatting. No behavior change.Francisco Lopes da Silva2015-01-251-1/+1
| | | | llvm-svn: 227052
* [Mips] Make MipsELFObjectReader and MipsELFDSOReader class templatesSimon Atanasyan2015-01-252-10/+10
| | | | | | No functional changes. llvm-svn: 227051
* [docs] Add link to the MIPS 64-bit ELF object file specificationSimon Atanasyan2015-01-251-0/+2
| | | | llvm-svn: 227050
* [Mips] Reformat the code with clang-formatSimon Atanasyan2015-01-251-2/+1
| | | | | | No functional changes. llvm-svn: 227049
* [Mips] Remove duplicated typedef'sSimon Atanasyan2015-01-252-4/+0
| | | | | | No functional changes. llvm-svn: 227048
* [Mips] Use template class argument instead of hard-coded type name inSimon Atanasyan2015-01-252-2/+2
| | | | | | | | the class field declarations. No functional changes. llvm-svn: 227047
* Instantiate Registry<GCStrategy> in LLVMCore, to let it available on Win32 DLL.NAKAMURA Takumi2015-01-252-0/+5
| | | | llvm-svn: 227046
* [ELF] Update for LLVM api changeSimon Atanasyan2015-01-251-2/+2
| | | | | | | | | The `Elf_Rel_Impl::setSymbolAndType` method now has the third argument `IsMips64EL` (like complement methods `getSymbol` and `getType`). While we do not support linking of MIPS64 ELF object file just pass `false` to the `setSymbolAndType`. llvm-svn: 227045
* [ELFYAML] Support mips64 relocation record format in yaml2obj/obj2yamlSimon Atanasyan2015-01-256-19/+219
| | | | | | | | | | | | | | | | | | | MIPS64 ELF file has a very specific relocation record format. Each record might specify up to three relocation operations. So the `r_info` field in fact consists of three relocation type sub-fields and optional code of "special" symbols. http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf page 40 The patch implements support of the MIPS64 relocation record format in yaml2obj/obj2yaml tools by introducing new optional Relocation fields: Type2, Type3, and SpecSym. These fields are recognized only if the object/YAML file relates to the MIPS64 target. Differential Revision: http://reviews.llvm.org/D7136 llvm-svn: 227044
* AVX-512: Changes in operations on masks registers for KNL and SKXElena Demikhovsky2015-01-255-52/+120
| | | | | | | | | - Added KSHIFTB/D/Q for skx - Added KORTESTB/D/Q for skx - Fixed store operation for v8i1 type for KNL - Store size of v8i1, v4i1 and v2i1 are changed to 8 bits llvm-svn: 227043
* Orc/IRCompileLayer.h: Avoid non-static initializer.NAKAMURA Takumi2015-01-251-1/+2
| | | | llvm-svn: 227042
* OrcJIT: Avoid non-static initializers.NAKAMURA Takumi2015-01-252-3/+3
| | | | llvm-svn: 227041
* Orc/LLVMBuild.txt: Prune redundant "Target" in libdeps.NAKAMURA Takumi2015-01-251-1/+1
| | | | llvm-svn: 227040
* [X86] Give scalar VRNDSCALE instructions priority in AVX512 mode.Craig Topper2015-01-252-20/+26
| | | | llvm-svn: 227039
* Simplify a multiclass. No functional change.Craig Topper2015-01-251-14/+18
| | | | llvm-svn: 227038
* Sema: require a complete type before lookup.Francisco Lopes da Silva2015-01-252-23/+42
| | | | llvm-svn: 227037
* Remove tab characters. NFCCraig Topper2015-01-251-1/+1
| | | | llvm-svn: 227036
* Implemented cost model for masked load/store operations.Elena Demikhovsky2015-01-255-0/+167
| | | | llvm-svn: 227035
* Fix the buildbots (fallout from r227028) by returning the exprloc of ↵David Blaikie2015-01-251-1/+6
| | | | | | | | | non-binary operator overload calls (and ->) to the start of the expression, not the location of the operator I'll give this some further thought/discussion later, but this is enough to unbreak the buildbots at least. llvm-svn: 227034
OpenPOWER on IntegriCloud