summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Statepoints] Mark statepoint intrinsic with Throws attributeIgor Laevsky2015-06-031-1/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D10215 llvm-svn: 238932
* Add 'is_always_equal' tests for scoped_allocator. Found that I had typed ↵Marshall Clow2015-06-032-1/+76
| | | | | | '||' where I meant '&&' in the code; fixed that, too llvm-svn: 238931
* [doc] Rename -polly-detect-only= to -polly-only-func=Tobias Grosser2015-06-031-1/+1
| | | | llvm-svn: 238930
* Lower signed-divisions without rounding to ashr instructionsTobias Grosser2015-06-032-5/+10
| | | | llvm-svn: 238929
* [utils] Improvements to check_cfc.py to work better with some build systems.Russell Gallop2015-06-032-3/+15
| | | | | | | | | Recognise options to output dependency files and don't perform checks. Report input file name when reporting a check failure so it is more obvious in large build logs. Differential Revision: http://reviews.llvm.org/D10183 llvm-svn: 238928
* Only convert power-of-two floor-division with non-negative denominatorTobias Grosser2015-06-031-4/+6
| | | | | | | | | | | | | | | floord(a,b) === a ashr log_2 (b) holds for positive and negative a's, but shifting only makes sense for positive values of b. The previous patch did not consider this as isl currently always produces postive b's. To avoid future surprises, we check that b is positive and only then apply the optimization. We also now correctly check the return value of the dyn-cast. No additional test case, as isl currently does not produce negative denominators. Reported-by: David Majnemer <david.majnemer@gmail.com> llvm-svn: 238927
* [utils] Add exact check to check_cfc.py dash_s_no_change.Russell Gallop2015-06-032-6/+44
| | | | | | | | | Files compiled with -via-file-asm should be byte for byte identical. This change improves the checking on dash_s_no_change to detect non-code differences. If there is a difference, the check goes on to compare code and debug to try and be more informative. llvm-svn: 238926
* [arm] Fix r238921. We must handle Constraint_i too.Daniel Sanders2015-06-031-0/+4
| | | | llvm-svn: 238925
* minor test fixAsaf Badouh2015-06-031-3/+3
| | | | llvm-svn: 238924
* re-apply 238809Asaf Badouh2015-06-0310-31/+590
| | | | | | | | | | AVX-512: Implemented GETEXP instruction for KNL and SKX Added rounding mode modifier for SQRTPS/PD Added tests for encoding and intrinsics. CR: http://reviews.llvm.org/D9991 llvm-svn: 238923
* Allow replacements created from token ranges to specify language options.Manuel Klimek2015-06-033-20/+54
| | | | | | | | The default language options will lead to incorrect replacements in C++ code, for example when trying to replace nested name specifiers ending in "::". llvm-svn: 238922
* [arm] Distinguish the /U[qytnms]/, 'Uv', 'Q', and 'm' inline assembly memory ↵Daniel Sanders2015-06-033-9/+51
| | | | | | | | | | | | | | | | | | | | | | constraints. Summary: But still handle them the same way since I don't know how they differ on this target. Of these, /U[qytnms]/ do not have backend tests but are accepted by clang. No functional change intended. Reviewers: t.p.northover Reviewed By: t.p.northover Subscribers: t.p.northover, aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D8203 llvm-svn: 238921
* AVX-512: More code improvements in shuffles, NFCElena Demikhovsky2015-06-031-21/+19
| | | | llvm-svn: 238919
* AVX-512: VSHUFPD instruction selection - code improvementsElena Demikhovsky2015-06-032-34/+44
| | | | llvm-svn: 238918
* AVX-512: Implemented SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2 instructions ↵Elena Demikhovsky2015-06-036-9/+541
| | | | | | | | | | for SKX and KNL. Added tests for encoding. By Igor Breger (igor.breger@intel.com) llvm-svn: 238917
* X86: Added MPX feature and bound registers.Elena Demikhovsky2015-06-035-2/+18
| | | | | | | | | Intel® Memory Protection Extensions (Intel® MPX) is a new feature in Skylake. It is a part of KNL and SKX sets. It is also a part of Skylake client. I added definition of %bnd0 - %bnd3 registers, each register is a pair of 64-bit integers. llvm-svn: 238916
* Re-commit r238838, r238844 with fix for host/target endian mismatch and ↵Daniel Sanders2015-06-032-12/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | windows buildbot. The windows buildbot originally failed because the check expressions are evaluated as 64-bit values, even for 32-bit symbols. Fixed this by comparing bottom 32-bits of the expressions. The host/target endian mismatch issue is that it's invalid to read/write target values using a host pointer without taking care of endian differences between the target and host. Most (if not all) instances of reinterpret_cast<uint32_t*>() in the RuntimeDyld are examples of this bug. This has been fixed for Mips using the endian aware read/write functions. The original commits were: r238838: [mips] Add RuntimeDyld tests for currently supported O32 relocations. Reviewers: petarj, vkalintiris Reviewed By: vkalintiris Subscribers: vkalintiris, llvm-commits Differential Revision: http://reviews.llvm.org/D10126 r238844: [mips][mcjit] Add support for R_MIPS_PC32. Summary: This allows us to resolve relocations for DW_EH_PE_pcrel TType encodings in the exception handling LSDA. Also fixed a nearby typo. Reviewers: petarj, vkalintiris Reviewed By: vkalintiris Subscribers: vkalintiris, llvm-commits Differential Revision: http://reviews.llvm.org/D10127 llvm-svn: 238915
* [MIPS][lldb-server] Add 32-bit register context and read/write FP registers ↵Sagar Thakur2015-06-0315-245/+1275
| | | | | | | | | | | | | on mips64 - Added support for read/write FP registers in FR1 mode. - Added 32 bit register context for mips32. Reviewers: clayborg, tberghammer, jaydeep Subscribers: emaste, nitesh.jain, bhushan, mohit.bhakkad, lldb-commits Differential Revision: http://reviews.llvm.org/D10029 llvm-svn: 238914
* Append CXXDefaultInitExpr's wrapped expression to the CFG when visiting a ↵Enrico Pertoso2015-06-033-1/+16
| | | | | | | | | | | | | | | | | | | constructor initializer Summary: This patch is part of http://llvm-reviews.chandlerc.com/D2181. In-class initializers are appended to the CFG when CFGBuilder::addInitializer is called. Reviewers: jordan_rose, rsmith Reviewed By: jordan_rose Subscribers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D2370 llvm-svn: 238913
* Fix typo in cross-compilation docs: "-fpu" -> "-mfpu"Vladimir Sukharev2015-06-031-1/+1
| | | | | | | | | | Reviewers: rengolin Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D10209 llvm-svn: 238912
* clang-format: Properly reset BreakBeforeParameter when wrappingDaniel Jasper2015-06-032-0/+5
| | | | | | | | | | | | | | | | | operators to the new line. Before: LOG_IF(aaa == // bbb) << a << b; After: LOG_IF(aaa == // bbb) << a << b; llvm-svn: 238911
* Fixes a typo in a comment.Enrico Pertoso2015-06-031-1/+1
| | | | llvm-svn: 238910
* clang-format: [JS] More aggressively keep array literals on one line.Daniel Jasper2015-06-032-5/+5
| | | | | | | | | | | | | | Before: var aaaaa: List<SomeThing> = [ new SomeThingAAAAAAAAAAAA(), new SomeThingBBBBBBBBB() ]; After: var aaaaa: List<SomeThing> = [new SomeThingAAAAAAAAAAAA(), new SomeThingBBBBBBBBB()]; llvm-svn: 238909
* Remove stray semicolon. NFC.Vasileios Kalintiris2015-06-031-1/+1
| | | | llvm-svn: 238908
* clang-format: [JS] Fix bug in type colon detection.Daniel Jasper2015-06-032-1/+11
| | | | | | | | | | | | | Before, this couldn't be formatted at all: class X { subs = { 'b': { 'c': 1, }, }; } llvm-svn: 238907
* [X86] Removed (unused) FSRL x86 operationSimon Pilgrim2015-06-034-21/+3
| | | | | | | | | | This patch removes the old X86ISD::FSRL op - which allowed float vectors to use the byte right shift operations (causing a domain switch....). Since the refactoring of the shuffle lowering code this no longer has any use. Differential Revision: http://reviews.llvm.org/D10169 llvm-svn: 238906
* Translate power-of-two floor-division into ashrTobias Grosser2015-06-034-15/+82
| | | | | | | | | | | | | | | | | | Power-of-two floor divisions can be translated into an arithmetic shift operation. This allows us to replace a complex lowering that requires division operations: %pexp.fdiv_q.0 = sub i64 %21, 128 %pexp.fdiv_q.1 = add i64 %pexp.fdiv_q.0, 1 %pexp.fdiv_q.2 = icmp slt i64 %21, 0 %pexp.fdiv_q.3 = select i1 %pexp.fdiv_q.2, i64 %pexp.fdiv_q.1, i64 %21 %pexp.fdiv_q.4 = sdiv i64 %pexp.fdiv_q.3, 128 with a simple ashr: %polly.fdiv_q.shr = ashr i64 %21, 7 llvm-svn: 238905
* Revert "add the -mrecip driver flag and process its options (2nd try)"Rafael Espindola2015-06-036-213/+1
| | | | | | | | This reverts commit r238851. It depends on a llvm commit that was reverted. llvm-svn: 238904
* This reverts commit r238838, r238844 and r238888.Rafael Espindola2015-06-032-53/+1
| | | | | | | | Trying to bring back a windows bot: http://lab.llvm.org:8011/builders/clang-x86-win2008-selfhost/builds/1224/steps/ninja%20check%202/logs/FAIL%3A%20LLVM%3A%3AELF_O32_PIC_relocations.s llvm-svn: 238903
* COFF: Update README.Rui Ueyama2015-06-031-5/+5
| | | | | | | | | | | | | | | Avoid saying this is based on sections because it's not very accurate. That we don't split section into smaller chunks of data does not mean that the linker is built on top of that. In reality, most part of the code do not care about underlying data, so they are neither based on "atoms" nor sections. The symbol table only cares about symbol names and their types. The writer handles list of chunks, which look like just blobs, and the writer doesn't care what those chunks are backed by. The only thing that interact with sections is SectionChunk, which is abstracted away as one type of Chunk. llvm-svn: 238902
* COFF: SymbolTable to manage symbols using BumpPtrAllocator.Rui Ueyama2015-06-032-11/+4
| | | | llvm-svn: 238901
* Revert "make reciprocal estimate code generation more flexible by adding ↵Rafael Espindola2015-06-0312-358/+58
| | | | | | | | | | command-line options (2nd try)" This reverts commit r238842. It broke -DBUILD_SHARED_LIBS=ON build. llvm-svn: 238900
* Fix the interpretation of a 0 st_name.Rafael Espindola2015-06-0319-187/+108
| | | | | | | | | | | | | | The ELF spec is very clear: ----------------------------------------------------------------------------- If the value is non-zero, it represents a string table index that gives the symbol name. Otherwise, the symbol table entry has no name. -------------------------------------------------------------------------- In particular, a st_name of 0 most certainly doesn't mean that the symbol has the same name as the section. llvm-svn: 238899
* Move to llvm-objdump a large amount of code to that is only used there.Rafael Espindola2015-06-038-370/+383
| | | | llvm-svn: 238898
* llvm-cov: Make llvm-cov --version DTRTJustin Bogner2015-06-031-0/+8
| | | | | | | | In r233132 we started requiring a subcommand in llvm-cov, but this made `llvm-cov --version` invalid, which is kind of silly. Print version information in this case, as most people would expect. llvm-svn: 238897
* Fixed "format-string" based settings so they can have quotes on them without ↵Greg Clayton2015-06-032-1/+28
| | | | | | | | | | | | | | leaving the quotes in the format string: (lldb) settings set thread-format "abc" (lldb) settings set thread-format 'abc' (lldb) settings set thread-format abc We strip the quotes before processing the format string and return an "error: mismatched quotes" if mismatched quotes are given. <rdar://problem/21210789> llvm-svn: 238896
* [BitcodeReader] Diagnose type mismatches with aliasesFilipe Cabecinhas2015-06-033-3/+11
| | | | | | Bug found with AFL fuzz. llvm-svn: 238895
* [Bitcode] Minimize the test to not conflict with othersFilipe Cabecinhas2015-06-031-0/+0
| | | | | | | | | Source for the test: @bloom = global <3 x i32> <i32 0, i32 1, i32 42> Plus bit twiddling to set the vector numelts to 0 (in the bc file). llvm-svn: 238894
* Fixed a deadlock that was slowing down processes when they shut down. A 3 ↵Greg Clayton2015-06-031-2/+2
| | | | | | second delay could occur sometimes when a process exits, now that delay is gone. llvm-svn: 238893
* [Sema] Make the atomic builtins more efficient by reducing volatilityDavid Majnemer2015-06-032-0/+12
| | | | | | | | The parameter types and return type do not need to be volatile just because the pointer type's pointee type is volatile qualified. This is an unnecessary pessimization. llvm-svn: 238892
* [BitcodeReader] Check vector size before trying to create a VectorTypeFilipe Cabecinhas2015-06-033-0/+7
| | | | | | Bug found with AFL fuzz llvm-svn: 238891
* Avoid a call to getOrCreateSymbol when we already have the symbol.Rafael Espindola2015-06-031-2/+5
| | | | llvm-svn: 238890
* Int128 is also a built-in preconstructed type.Nick Lewycky2015-06-021-6/+7
| | | | llvm-svn: 238889
* [mips] XFAIL ELF_O32_PIC_relocations.s for big-endian mipsDaniel Sanders2015-06-021-0/+2
| | | | | | | The test exposes pre-existing bugs when the endian of the host and target do not match. llvm-svn: 238888
* Clarify when we can avoid creating names for temp symbols.Rafael Espindola2015-06-022-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some temporary symbols are created by MC itself. These symbols are never used for lookup and are never included in the object symbol table, so we can avoid creating a name for them. Other temporaries are created by CodeGen or by the user by explicitly asking for a name starting with .L (or L on MachO). These temporaries behave like regular symbols, we just try to avoid including them in the object symbol table, but sometimes they end up there: const char *foo() { return "abc" + 3; } will have a relocation pointing to a .L symbol. It just so happens that almost all MC created temporary has the AlwaysAddSuffix option and CodeGen/user created ones don't. One interesting future optimization would be to use unnamed symbols for all temporaries, but that would require use an st_name of 0 or having the object writer create the names if a symbol does end up in the symbol table. No testcase since this just avoid creating a few extra names for MC created temporaries. llvm-svn: 238887
* Fix LLDB so that it can correctly track down dependent shared libraries that ↵Greg Clayton2015-06-023-7/+77
| | | | | | | | use @rpath. <rdar://problem/8371885> llvm-svn: 238886
* Fix typo in tutorial.Douglas Katzman2015-06-021-1/+1
| | | | llvm-svn: 238885
* [NFC] Fix spelling in comment.Sanjoy Das2015-06-021-1/+1
| | | | llvm-svn: 238884
* [RewriteStatepointsForGC] Strip deref info after rewriting.Sanjoy Das2015-06-022-0/+179
| | | | | | | | | | | | | | | | | | | | | Summary: Once a gc.statepoint has been rewritten to relocate live references, the SSA values represent physical pointers instead of logical references. Logical dereferencability does not imply physical dereferencability and after RewriteStatepointsForGC has run any attributes that imply dereferencability of the logical references need to be stripped. This current approach is conservative, and can be made more precise later if needed. For starters, we need to strip dereferencable attributes only from pointers that live in the GC address space. Reviewers: reames, pgavlin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10105 llvm-svn: 238883
* [NFCI] Change RewriteStatepointsForGC to a ModulePass.Sanjoy Das2015-06-022-14/+17
| | | | | | | | | | | | | | Summary: A later change that has RewriteStatepointsForGC change function attributes throughout the module depends on this. Reviewers: reames, pgavlin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10104 llvm-svn: 238882
OpenPOWER on IntegriCloud