Displaying 1 50 of 289,513 commits (0.021s)

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/trunk/test/CodeGen/X86 combine-sdiv.ll

[TargetLowering] Add support for non-uniform vectors to BuildSDIV

This patch refactors the existing TargetLowering::BuildSDIV base implementation to support 
non-uniform constant vector denominators.

This is the last patch necessary to close PR36545

Differential Revision: https://reviews.llvm.org/D50765

LLVM — lld/trunk/test/COFF pdb-type-server-simple.test, llvm/trunk/include/llvm/DebugInfo/CodeView CodeViewRegisters.def

[codeview] Use push_macro to avoid conflicts instead of a prefix

This prefix was added in r333421, and it changed our dumper output to
say things like "CVRegEAX" instead of just "EAX". That's a functional
change that I'd rather avoid.

I tested GCC, Clang, and MSVC, and all of them support #pragma
push_macro. They don't issue warnings whem the macro is not defined

I don't have a Mac so I can't test the real termios.h header, but I
looked at the termios.h sources online and looked for other conflicts.
I saw only the CR* macros, so those are the ones we work around.

Reviewers: zturner, JDevlieghere

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D50851

LLVM — llvm/trunk/lib/MC MCExpr.cpp

[MC] Cleanup noop default case spelling. NFC.
Delta File
+1 -1 llvm/trunk/lib/MC/MCExpr.cpp
+1 -1 1 file

LLVM — lld/trunk/ELF SyntheticSections.cpp, lld/trunk/test/ELF x86-64-reloc-error2.s

[ELF] mergeSections: remove non-alive MergeInputSection

Summary: This makes it conform to what the comment says. Otherwise when getErrPlace() is 
called afterwards, cast<InputSection>(D) will cause incompatible cast as MergeInputSection 
is not a subclass of InputSection.

Reviewers: ruiu, grimar, espindola, pcc

Reviewed By: grimar

Subscribers: emaste, arichardson, llvm-commits

Differential Revision: https://reviews.llvm.org/D50742

LLVM — llvm/trunk/unittests/Passes CMakeLists.txt

Revert "unittests: Don't install TestPlugin.so"

This reverts commit r339897.

This breaks the build on Windows and platforms where loadable modules
aren't supported.

LLVM — llvm/trunk/lib/Target/AMDGPU AMDGPUISelLowering.cpp AMDGPUISelLowering.h, llvm/trunk/test/CodeGen/AMDGPU fexp.ll

AMDGPU: Custom lower fexp

This will allow the library to just use __builtin_expf directly
without expanding this itself. Note f64 still won't work because
there is no exp instruction for it.

LLVM — llvm/trunk/test/CodeGen/X86 combine-sdiv.ll

[X86][SSE] Add sdiv by nonuniform constant vector test containing -1/+1 and all-bits style 

LLVM — llvm/trunk/test/Transforms/InstCombine pow-1.ll pow-sqrt.ll

[NFC] Fix typo in test cases

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG TargetLowering.cpp

[TargetLowering] Refactor BuildSDIV in preparation for D50765. NFCI.

Pull out magic factor calculators into a helper function, use 0/+1/-1 multiplication 
factor to (optionally) add/sub the numerator.

LLVM — llvm/trunk/unittests/Passes CMakeLists.txt

unittests: Don't install TestPlugin.so

add_llvm_loadable_module adds an install target by default, but this
module is only used for a unit test, so we don't need to install it.

Reviewers: philip.pfaffe, thakis

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D50668

LLVM — llvm/trunk/lib/MC/MCParser AsmParser.cpp

[MC] Remove unused variable

LLVM — llvm/trunk/include/llvm/MC MCExpr.h, llvm/trunk/include/llvm/MC/MCParser MCTargetAsmParser.h MCAsmParserUtils.h

[MC][X86] Enhance X86 Register expression handling to more closely match GCC.

Allow the comparison of x86 registers in the evaluation of assembler
directives. This generalizes and simplifies the extension from r334022
to catch another case found in the Linux kernel.

Reviewers: rnk, void

Reviewed By: rnk

Subscribers: hiraditya, nickdesaulniers, llvm-commits

Differential Revision: https://reviews.llvm.org/D50795

LLVM — llvm/trunk/lib/Demangle MicrosoftDemangle.cpp

Fix -Wmicrosoft-goto warnings.

LLVM — llvm/trunk/include/llvm/DebugInfo/CodeView CodeViewRegisters.def, llvm/trunk/lib/Target/X86/MCTargetDesc X86MCTargetDesc.cpp

Add support for AVX-512 CodeView registers.

When compiling with /arch:AVX512 and optimizations turned on,
we could crash while emitting debug info because we did not
have CodeView register constants for the AVX 512 register
set defined.  This patch defines them.

Differential Revision: https://reviews.llvm.org/D50819

LLVM — llvm/trunk/lib/Demangle MicrosoftDemangle.cpp, llvm/trunk/test/Demangle ms-string-literals.test

[MS Demangler] Demangle string literals.

When demangling string literals, Microsoft's undname
simply prints 'string'.  This patch implements string
literal demangling while doing a bit better than this
by decoding as much of the string as possible and
trying to faithfully reproduce the original string
literal definition.

This is a bit tricky because the different character
types char, char16_t, and char32_t are not uniquely
identified by the mangling, so we have to use a
heuristic to try to guess the character type.  But
it works pretty well, and many tests are added to
illustrate the behavior.

Differential Revision: https://reviews.llvm.org/D50806

LLVM — llvm/trunk/lib/Demangle MicrosoftDemangle.cpp, llvm/trunk/test/Demangle ms-md5.test

[MS Demangler] Don't fail on MD5-mangled names.

When we have an MD5 mangled name, we shouldn't choke and say
that it's an invalid name.  Even though it's impossible to demangle,
we should just output the original name.

LLVM — llvm/trunk/utils/TableGen CodeGenDAGPatterns.cpp

[TableGen] TypeSetByHwMode::operator== optimization

This operator is called a great deal, by checking for the cheap isSimple equality cases 
first (a common occurrence) we can improve performance as we avoid a lot of std::map 
find/iteration in hasDefault.

isSimple also means that a default value is present, so we can avoid some hasDefault 

This also avoids a rather dodgy piece of logic that was checking for isSimple() && 
!VTS.isSimple() but not the inverse - it now uses the general hasDefault mode comparison 
test instead.

Saves around 15secs in debug builds of x86 -gen-dag-isel.

Differential Revision: https://reviews.llvm.org/D50841

LLVM — llvm/trunk/test/Analysis/ConstantFolding funnel-shift.ll

[ConstantFolding] add tests for funnel shift intrinsics; NFC

No functionality for this yet.

LLVM — llvm/trunk/utils/TableGen CodeGenDAGPatterns.cpp

[TableGen] Avoid self getPredicates() != comparison. NFCI.

We were performing a completely unnecessary full comparison of the same 

LLVM — llvm/trunk/lib/Transforms/Utils SimplifyLibCalls.cpp, llvm/trunk/test/Transforms/InstCombine pow-sqrt.ll pow-1.ll

[InstCombine] Expand the simplification of pow(x, 0.5) to sqrt(x)

Expand the number of cases when `pow(x, 0.5)` is simplified into `sqrt(x)`
by considering the math semantics with more granularity.

Differential revision: https://reviews.llvm.org/D50036

LLVM — llvm/trunk/tools/llvm-mca Pipeline.cpp ExecuteStage.h

[llvm-mca] Small refactoring in preparation for another patch that will improve the 
modularity of the Pipeline. NFCI

The main difference is that now `cycleStart()` and `cycleEnd()` return an

This patch implements a few minor style changes, and adds missing 'const' to
some methods.

LLVM — llvm/trunk/utils/TableGen DAGISelMatcherGen.cpp CodeGenRegisters.h

[TableGen] Return ValueTypeByHwMode by const reference from 

Avoids costly std::map copies inside ValueTypeByHwMode constructor

LLVM — llvm/trunk/cmake/modules HandleLLVMOptions.cmake

[cmake] Prevent LLVMgold.so from being unloaded on Linux

Extend the fix from D40459 to also apply to modules such as the LLVM
gold plugin. This is needed because current binutils master (and future
binutils 2.32) calls dlclose() on bfd plugins as part of a recent fix
for https://sourceware.org/bugzilla/show_bug.cgi?id=23460.

Patch by Evangelos Foutras!

Differential Revision: https://reviews.llvm.org/D50416

LLVM — libcxx/branches/release_70 CMakeLists.txt, libcxx/branches/release_70/docs BuildingLibcxx.rst

Merging r339874:
r339874 | ldionne | 2018-08-16 14:44:28 +0200 (Thu, 16 Aug 2018) | 25 lines

[libcxx] By default, do not use internal_linkage to hide symbols from the ABI

https://reviews.llvm.org/D49240 led to symbol size problems in Chromium, and
we expect this may be the case in other projects built in debug mode too.
Instead, unless users explicitly ask for internal_linkage, we use always_inline
like we used to.

In the future, when we have a solution that allows us to drop always_inline
without falling back on internal_linkage, we can replace always_inline by

Note that this commit introduces a change in contract for existing libc++
users: by default, libc++ used to guarantee that TUs built with different
versions of libc++ could be linked together. With the introduction of the
_LIBCPP_HIDE_FROM_ABI_PER_TU macro, the default behavior is that TUs built
with different libc++ versions are not guaranteed to link. This is a change
in contract but not a change in behavior, since the current implementation
still allows linking TUs built with different libc++ versions together.

Reviewers: EricWF, mclow.lists, dexonsmith, hans, rnk

    [5 lines not shown]

LLVM — lld/trunk/test/ELF/invalid invalid-soname.test

[LLD][ELF] - Add a test case for DT_SONAME entry reading.

This covers a following line with a test:

LLVM — lld/trunk/test/ELF/invalid linkorder-invalid-sec.test

[LLD][ELF] - Add a test case.

This covers the following line with a test:

LLVM — llvm/trunk/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/trunk/test/Transforms/InstCombine icmp-vec.ll

[InstCombine] move vector compare before same-shuffled ops

This is a step towards fixing PR37463:

LLVM — libcxx/trunk CMakeLists.txt, libcxx/trunk/docs BuildingLibcxx.rst

[libcxx] By default, do not use internal_linkage to hide symbols from the ABI

https://reviews.llvm.org/D49240 led to symbol size problems in Chromium, and
we expect this may be the case in other projects built in debug mode too.
Instead, unless users explicitly ask for internal_linkage, we use always_inline
like we used to.

In the future, when we have a solution that allows us to drop always_inline
without falling back on internal_linkage, we can replace always_inline by

Note that this commit introduces a change in contract for existing libc++
users: by default, libc++ used to guarantee that TUs built with different
versions of libc++ could be linked together. With the introduction of the
_LIBCPP_HIDE_FROM_ABI_PER_TU macro, the default behavior is that TUs built
with different libc++ versions are not guaranteed to link. This is a change
in contract but not a change in behavior, since the current implementation
still allows linking TUs built with different libc++ versions together.

Reviewers: EricWF, mclow.lists, dexonsmith, hans, rnk

Subscribers: christof, cfe-commits

Differential Revision: https://reviews.llvm.org/D50652

LLVM — llvm/trunk/test/tools/yaml2obj section-link.yaml, llvm/trunk/tools/yaml2obj yaml2elf.cpp

[yaml2obj] - Allow to use numeric sh_link (Link) value for sections.

That change allows using numeric values for Link field.
It is consistent with the code for another fields in this method.

LLVM — llvm/trunk/test/tools/yaml2obj reloc-sec-info.yaml

[yaml2elf] - Use check-next in test.

Its a follow up for rL339870.

LLVM — llvm/trunk/lib/Target/ARM ARMCodeGenPrepare.cpp, llvm/trunk/test/CodeGen/ARM arm-cgp-pointers.ll

[ARM] Ignore GEPs in ARMCodeGenPrepare

While searching through the use-def tree, ignore GetElementPtrInst
instructions because they don't need promoting and neither do their
indices. Otherwise, the wide indices prevent the transformation from

Differential Revision: https://reviews.llvm.org/D50762

LLVM — llvm/trunk/test/tools/yaml2obj reloc-sec-info.yaml, llvm/trunk/tools/yaml2obj yaml2elf.cpp

[yaml2elf] - Simplify code, add a test. NFC.

This simplifies the code allowing to set the sh_info
for relocations sections. And adds a missing test.

LLVM — llvm/trunk/lib/Target/ARM ARMCodeGenPrepare.cpp, llvm/trunk/test/CodeGen/ARM arm-cgp-zext-truncs.ll arm-cgp-calls.ll

[ARM] Allow zext in ARMCodeGenPrepare

Treat zext instructions as roots, like we do for truncs.

Differential Revision: https://reviews.llvm.org/D50759

LLVM — lld/trunk/test/ELF/invalid sht-group-wrong-section.test

[LLD][ELF] - Add test case.

To cover the following error message:

LLVM — llvm/trunk/include/llvm/MC MCObjectStreamer.h, llvm/trunk/lib/MC MCObjectStreamer.cpp

[RISCV][MC] Don't fold symbol differences if requiresDiffExpressionRelocations is true

When emitting the difference between two symbols, the standard behavior is 
that the difference will be resolved to an absolute value if both of the 
symbols are offsets from the same data fragment. This is undesirable on 
architectures such as RISC-V where relaxation in the linker may cause the 
computed difference to become invalid. This caused an issue when compiling to 
object code, where the size of a function in the debug information was already 
calculated even though it could change as a consequence of relaxation in the 
subsequent linking stage.

This patch inhibits the resolution of symbol differences to absolute values 
where the target's AsmBackend has declared that it does not want these to be 

Differential Revision: https://reviews.llvm.org/D45773
Patch by Edward Jones.

LLVM — llvm/trunk/include/llvm/ADT APInt.h, llvm/trunk/lib/Support APInt.cpp


The windows SDK defines WORD_MAX, so any poor soul that wants to use LLVM in a project 
that depends on the windows SDK gets a build error.

Given that it actually describes the maximal value of WordType, it actually fits even 
better than WORD_MAX

Patch by: @miscco

Differential Revision: https://reviews.llvm.org/D50777

LLVM — cfe/trunk/include/clang/AST Type.h, cfe/trunk/lib/AST ASTContext.cpp

[AST] Store the OwnedTagDecl as a trailing object in ElaboratedType.

The TagDecl *OwnedTagDecl in ElaboratedType is quite commonly
null (at least when parsing all of Boost, it is non-null for only about 600
of the 66k ElaboratedType). Therefore we can save a pointer in the
common case by storing it as a trailing object, and storing a bit in the
bit-fields of Type indicating when the pointer is null.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D50715

LLVM — cfe/trunk/include/clang/AST Type.h, cfe/trunk/lib/AST Type.cpp

[AST] Pack the unsigned of SubstTemplateTypeParmPackType into Type

The bit-fields of Type have enough space for the member
unsigned NumArgs of SubstTemplateTypeParmPackType.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50713

LLVM — cfe/trunk/include/clang/AST Type.h, cfe/trunk/lib/AST Type.cpp

[AST] Pack the unsigned of DependentTemplateSpecializationType into Type

The bit-fields of `Type` have enough space for the member
`unsigned NumArgs` of `DependentTemplateSpecializationType`.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50712

LLVM — llvm/branches/release_70/lib/Target/PowerPC PPCISelLowering.cpp, llvm/branches/release_70/test/CodeGen/PowerPC pr38087.ll

Merging r339769:
r339769 | nemanjai | 2018-08-15 14:58:13 +0200 (Wed, 15 Aug 2018) | 12 lines

[PowerPC] Don't run BV DAG Combine before legalization if it assumes legal types

When trying to combine a DAG that builds a vector out of sign-extensions of
vector extracts, the code assumes legal input types. Due to that, we have to
disable this combine prior to legalization.
In some cases, the DAG will look slightly different after legalization so
account for that in the matching code.

This is a fix for https://bugs.llvm.org/show_bug.cgi?id=38087

Differential Revision: https://reviews.llvm.org/D49080


LLVM — llvm/trunk/lib/Target/ARM ARMCodeGenPrepare.cpp, llvm/trunk/test/CodeGen/ARM arm-cgp-signed-icmps.ll arm-cgp-icmps.ll

[ARM] Allow signed icmps in ARMCodeGenPrepare
Originally committed in r339755 which was reverted in r339806 due to
an asan issue. The issue was caused by my assumption that operands to
a CallInst mapped to the FunctionType Params. CallInsts are now
handled by iterating over their ArgOperands instead of Operands.
Original Message:
  Treat signed icmps as 'sinks', allowing them to be in the use-def
  tree, enabling more promotions to be performed. As a sink, any
  promoted incoming values need to be truncated before being used by
  the signed icmp.
  Differential Revision: https://reviews.llvm.org/D50067

LLVM — llvm/branches/release_70/lib/CodeGen/SelectionDAG LegalizeFloatTypes.cpp, llvm/branches/release_70/test/CodeGen/X86 pr38533.ll

Merging r339536:
r339536 | ctopper | 2018-08-13 08:53:49 +0200 (Mon, 13 Aug 2018) | 3 lines

[SelectionDAG] In PromoteFloatOp_BITCAST, insert a bitcast after the fp_to_fp16 in case 
the result type isn't a scalar integer.

This is another variation of PR38533. In this case, the result type of the bitcast is 
legal and 16-bits wide, but not a scalar integer. So we need to emit the convert to i16 
and then bitcast it to the true result type. This new bitcast will be further type 
legalized if necessary.

LLVM — llvm/branches/release_70/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp, llvm/branches/release_70/test/CodeGen/X86 pr38533.ll

Merging r339535:
r339535 | ctopper | 2018-08-13 08:53:47 +0200 (Mon, 13 Aug 2018) | 5 lines

[SelectionDAG] In PromoteIntRes_BITCAST, when the input is TypePromoteFloat, make sure the 
output type is scalar. For vectors, use a store and load of temporary.

Previously if the result type was a vector, we emitted a FP_TO_FP16 with a vector result 
type which isn't valid.

This is basically the opposite case of the root cause of PR38533.

LLVM — llvm/branches/release_70/lib/CodeGen/SelectionDAG LegalizeFloatTypes.cpp, llvm/branches/release_70/test/CodeGen/X86 pr38533.ll

Merging r339533:
r339533 | ctopper | 2018-08-13 07:26:49 +0200 (Mon, 13 Aug 2018) | 5 lines

[SelectionDAG] In PromoteFloatRes_BITCAST, insert a bitcast before the fp16_to_fp in case 
the input type isn't an i16.

The bitcast can be further legalized as needed.

Fixes PR38533.

LLVM — libcxx/branches/release_70/test/libcxx/memory aligned_allocation_macro.pass.cpp, libcxx/branches/release_70/test/std/language.support/support.dynamic/new.delete/new.delete.array delete_align_val_t_replace.pass.cpp new_size.sh.cpp

Merging r339743:
r339743 | ldionne | 2018-08-15 02:30:03 +0200 (Wed, 15 Aug 2018) | 14 lines

[libcxx] Fix XFAILs for aligned allocation tests on older OSX versions

Since r338934, Clang emits an error when aligned allocation functions are
used in conjunction with a system libc++ dylib that does not support those
functions. This causes some tests to fail when testing against older libc++
dylibs. This commit marks those tests as UNSUPPORTED, and also documents the
various reasons for the tests being unsupported.

Reviewers: vsapsai, EricWF

Subscribers: christof, dexonsmith, cfe-commits, mclow.lists, EricWF

Differential Revision: https://reviews.llvm.org/D50341

LLVM — llvm/branches/release_70/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/branches/release_70/test/Transforms/SLPVectorizer/AArch64 PR38339.ll

Merging r339166:
r339166 | abataev | 2018-08-07 21:21:05 +0200 (Tue, 07 Aug 2018) | 12 lines

[SLP] Fix insert point for reused extract instructions.

Reworked the previously committed patch to insert shuffles for reused
extract element instructions in the correct position. Previous logic was
incorrect, and might lead to the crash with PHIs and EH instructions.

Reviewers: efriedma, javed.absar

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D50143

LLVM — libcxx/branches/release_70/test/support nasty_macros.hpp

Merging r339794:
r339794 | dim | 2018-08-15 19:30:32 +0200 (Wed, 15 Aug 2018) | 8 lines

For FreeBSD, don't define _M in nasty_macros.hpp

Because FreeBSD uses _M in its <sys/types.h>, and it is hard to avoid
including that header, only define _M to NASTY_MACRO for other operating
systems.  This fixes almost 2000 unexpected test failures.

Discussed with Eric Fiselier.


LLVM — cfe/branches/release_70/include/clang/AST OpenMPClause.h, cfe/branches/release_70/lib/AST OpenMPClause.cpp

Merging r339603:
r339603 | abataev | 2018-08-13 21:04:24 +0200 (Mon, 13 Aug 2018) | 4 lines

[OPENMP] Fix emission of the loop doacross constructs.

The number of loops associated with the OpenMP loop constructs should
not be considered as the number loops to collapse.

LLVM — libcxx/branches/release_70 CMakeLists.txt

Merging r339697:
r339697 | mstorsjo | 2018-08-14 19:33:10 +0200 (Tue, 14 Aug 2018) | 8 lines


This option should be available if LIBCXX_ENABLE_SHARED is enabled,

This fixes a typo from SVN r337814.

Differential Revision: https://reviews.llvm.org/D50691

LLVM — llvm/trunk/lib/Target/Mips MipsTargetMachine.cpp

[mips] Remove dead code from MipsPassConfig

Found by GCC's -Wunused-function.

Patch by Kim Gräsman.

Differential revision: https://reviews.llvm.org/D50612