Displaying 1 50 of 289,386 commits (0.023s)

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

[TargetLowering] Minor cleanup of TargetLowering::BuildSDIV. NFCI.

Pull out some types to match layout in TargetLowering::BuildUDIV. Early step towards 
adding non-uniform vector support.

LLVM — llvm/trunk/include/llvm/Transforms/Utils LoopUtils.h, llvm/trunk/lib/Transforms/Utils LoopUtils.cpp LoopUnrollAndJam.cpp

[UnJ] Rename hasInvariantIterationCount to hasIterationCountInvariantInParent NFC

This hopefully describes the API of the function more precisely.

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

[X86][SSE] Add sdiv by nonuniform constant vector tests

Tests cover each TargetLowering::BuildSDIV path separately plus combos

LLVM — llvm/trunk/test/CodeGen/X86 sibcall.ll

[X86] Add sibling-call test cases

This commit adds new sibling-call test cases, so it will be possible to see
how these test cases will be changed after applying D45653.
See D45653 for details.
Delta File
+109 -0 llvm/trunk/test/CodeGen/X86/sibcall.ll
+109 -0 1 file

LLVM — cfe/trunk/unittests/ASTMatchers ASTMatchersTraversalTest.cpp

Fix ASTMatchersTraversalTest testcase compile on older compilers

Some versions of gcc, especially when invoked through ccache (-E), can have
trouble with raw string literals inside macros. This moves the string out of
the macro.

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

[TargetLowering] Minor refactor to TargetLowering::BuildUDIV to merge scalar/vector magic 
value collection. NFCI.

Use the same ISD::matchUnaryPredicate pattern that was used in D50392.

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

[DagCombiner] Don't bother adding to the work list if TLI.BuildSDIVPow2 failed. NFCI.

Matches the code in BuildSDIV/BuildUDIV

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

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

This patch refactors the existing BuildExactSDIV implementation to support non-uniform 
constant vector denominators.

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

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

[ARM] Allow signed icmps in ARMCodeGenPrepare

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/trunk/lib/Target/ARM ARMCodeGenPrepare.cpp, llvm/trunk/test/CodeGen/ARM arm-cgp-phis-calls-ret.ll arm-cgp-calls.ll

[ARM] Allow pointer values in ARMCodeGenPrepare

Add pointers to the list of allowed types, but don't try to promote
them. Also fixed a bug with the promotion of undef values, so a new
value is now created instead of mutating in place. We also now only
promote if there's an instruction in the use-def chains other than
the icmp, sinks and sources.

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

LLVM — llvm/trunk/lib/Analysis AliasSetTracker.cpp, llvm/trunk/test/Analysis/AliasSet guards.ll intrinsics.ll

[AliasSetTracker] Do not treat experimental_guard intrinsic as memory writing instruction

The `experimental_guard` intrinsic has memory write semantics to model the thread-exiting
logic, but does not do any actual writes to memory. Currently, `AliasSetTracker` treats it 
as a
normal memory write. As result, a loop-invariant load cannot be hoisted out of loop 
because
the guard may possibly alias with it.

This patch makes `AliasSetTracker` so that it doesn't treat guards as memory writes.

Differential Revision: https://reviews.llvm.org/D50497
Reviewed By: reames

LLVM — llvm/trunk/include/llvm/Analysis MustExecute.h, llvm/trunk/lib/Analysis MustExecute.cpp

[NFC] Refactoring of LoopSafetyInfo, step 1

Turn structure into class, encapsulate methods, add clarifying comments.

Differential Revision: https://reviews.llvm.org/D50693
Reviewed By: reames

LLVM — llvm/trunk/lib/Transforms/Utils ImplicitControlFlowTracking.cpp

[NFC] Add sanitizing assertion to ICF tracker

LLVM — llvm/trunk/lib/Transforms/Scalar LICM.cpp

[NFC][LICM] Make hoist method void

Method hoist always returns true. This patch makes it void.

Differential Revision: https://reviews.llvm.org/D50696
Reviewed By: hiraditya

LLVM — llvm/trunk/lib/Target/X86 X86InstrAVX512.td X86InstrSSE.td

[X86] Change legacy SSE scalar fp to integer intrinsics to use specific ISD opcodes 
instead of keeping as intrinsics. Unify SSE and AVX512 isel patterns.

AVX512 added new versions of these intrinsics that take a rounding mode. If the rounding 
mode is 4 the new intrinsics are equivalent to the old intrinsics.

The AVX512 intrinsics were being lowered to ISD opcodes, but the legacy SSE intrinsics 
were left as intrinsics. This resulted in the AVX512 instructions needing separate 
patterns for the ISD opcodes and the legacy SSE intrinsics.

Now we convert SSE intrinsics and AVX512 intrinsics with rounding mode 4 to the same ISD 
opcode so we can share the isel patterns.

LLVM — llvm/trunk/lib/Target/AVR AVRISelDAGToDAG.cpp

[SDAG] Update the AVR backend for the SelectionDAG API changes in
r339740, fixing the build for this target.

LLVM — cfe/trunk/lib/StaticAnalyzer/Core ExprEngineCallAndReturn.cpp

Silence "unused variable" warning.

LLVM — cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive CallEvent.h ExprEngine.h, cfe/trunk/lib/StaticAnalyzer/Checkers BasicObjCFoundationChecks.cpp

[analyzer] Add support for constructors of arguments.

Once CFG-side support for argument construction contexts landed in r338436,
the analyzer could make use of them to evaluate argument constructors properly.

When evaluated as calls, constructors of arguments now use the variable region
of the parameter as their target. The corresponding stack frame does not yet
exist when the parameter is constructed, and this stack frame is created
eagerly.

Construction of functions whose body is unavailable and of virtual functions
is not yet supported. Part of the reason is the analyzer doesn't consistently
use canonical declarations o identify the function in these cases, and every
re-declaration or potential override comes with its own set of parameter
declarations. Also it is less important because if the function is not
inlined, there's usually no benefit in inlining the argument constructor.

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

LLVM — llvm/trunk/lib/Target/WebAssembly WebAssemblyInstrSIMD.td, llvm/trunk/test/CodeGen/WebAssembly simd.ll

[WebAssembly] SIMD Splats

Implement and test SIMD splat ops.

Patch by Thomas Lively

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

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

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

Summary:
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 — libcxx/trunk/test/std/depr/depr.c.headers float_h.pass.cpp, libcxx/trunk/test/std/language.support/support.limits/c.limits cfloat.pass.cpp

[libc++] Disable failing C11 feature tests for <cfloat> and <float.h>

Summary:
Those tests are breaking the test bots. A Bugzilla has been filed to
make sure those tests are re-enabled: https://bugs.llvm.org/show_bug.cgi?id=38572

Reviewers: mclow.lists, EricWF

Subscribers: krytarowski, christof, dexonsmith, cfe-commits

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

LLVM — libcxx/trunk/include __config

[libc++] Detect C11 features on non-Clang compilers

Summary:
The macros were inside `#if defined(_LIBCPP_COMPILER_CLANG)`, which means
we would never detect C11 features on non-Clang compilers. According to
Marshall Clow, this is not the intended behavior.

Reviewers: mclow.lists, EricWF

Subscribers: krytarowski, christof, dexonsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D50748
Delta File
+22 -22 libcxx/trunk/include/__config
+22 -22 1 file

LLVM — llvm/trunk/include/llvm/CodeGen SelectionDAGNodes.h SelectionDAG.h, llvm/trunk/lib/CodeGen StackColoring.cpp

[SDAG] Remove the reliance on MI's allocation strategy for
`MachineMemOperand` pointers attached to `MachineSDNodes` and instead
have the `SelectionDAG` fully manage the memory for this array.

Prior to this change, the memory management was deeply confusing here --
The way the MI was built relied on the `SelectionDAG` allocating memory
for these arrays of pointers using the `MachineFunction`'s allocator so
that the raw pointer to the array could be blindly copied into an
eventual `MachineInstr`. This creates a hard coupling between how
`MachineInstr`s allocate their array of `MachineMemOperand` pointers and
how the `MachineSDNode` does.

This change is motivated in large part by a change I am making to how
`MachineFunction` allocates these pointers, but it seems like a layering
improvement as well.

This would run the risk of increasing allocations overall, but I've
implemented an optimization that should avoid that by storing a single
`MachineMemOperand` pointer directly instead of allocating anything.
This is expected to be a net win because the vast majority of uses of
these only need a single pointer.

As a side-effect, this makes the API for updating a `MachineSDNode` and
a `MachineInstr` reasonably different which seems nice to avoid
unexpected coupling of these two layers. We can map between them, but we

    [3 lines not shown]

LLVM — llvm/trunk/test/CodeGen/WebAssembly exception.ll

[WebAssembly] Delete a specific push number from test expectations

Summary:
This shouldn't have been a specific number but rather a regex. This was
a part of rL339474 which got reverted.

Reviewers: aardappel

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits

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

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/trunk/test/CodeGen/X86 vector-constrained-fp-intrinsics.ll

[FPEnv] Scalarize StrictFP vector operations

Add a helper function to scalarize constrained FP operations as needed.

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

LLVM — llvm/trunk/include/llvm/CodeGen TargetLowering.h, llvm/trunk/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[ARM] Make PerformSHLSimplify add nodes to the DAG worklist correctly.

Intentionally excluding nodes from the DAGCombine worklist is likely to
lead to weird optimizations and infinite loops, so it's generally a bad
idea.

To avoid the infinite loops, fix DAGCombine to use the
isDesirableToCommuteWithShift target hook before performing the
transforms in question, and implement the target hook in the ARM backend
disable the transforms in question.

Fixes https://bugs.llvm.org/show_bug.cgi?id=38530 . (I don't have a
reduced testcase for that bug. But we should have sufficient test
coverage for PerformSHLSimplify given that we're not playing weird
tricks with the worklist. I can try to bugpoint it if necessary,
though.)

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

LLVM — cfe/trunk/unittests/AST ASTImporterTest.cpp

Remove obsolete comment

This related to the code as first checked in in r266292 ([ASTImporter]
Implement some expression-related AST node import., 2016-04-14).

LLVM — cfe/trunk/lib/AST Stmt.cpp, cfe/trunk/unittests/ASTMatchers ASTMatchersTraversalTest.cpp

Fix Stmt::ignoreImplicit

Summary:
A CXXBindTemporaryExpr can appear inside an ImplicitCastExpr, and was
not ignored previously.

Fixes the case reported in PR37327.

Reviewers: rsmith, dblaikie, klimek

Subscribers: cfe-commits

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

LLVM — llvm/trunk CMakeLists.txt

Remove vestiges of configure buildsystem

Subscribers: mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D50528
Delta File
+0 -18 llvm/trunk/CMakeLists.txt
+0 -18 1 file

LLVM — cfe/trunk/test lit.site.cfg.py.in

Fix lit fatal errors about requiring a USE_Z3_SOLVER param
Delta File
+1 -2 cfe/trunk/test/lit.site.cfg.py.in
+1 -2 1 file

LLVM — cfe/trunk/lib/Analysis CFG.cpp, cfe/trunk/test/Analysis cfg-rich-constructors.cpp

[CFG] [analyzer] Find argument constructors in CXXTemporaryObjectExprs.

CXXTemporaryObjectExpr is a sub-class of CXXConstructExpr. If it has arguments
that are structures passed by value, their respective constructors need to be
handled by providing a ConstructionContext, like for regular function calls and
for regular constructors.

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

LLVM — cfe/trunk/test/Analysis std-c-library-functions-inlined.c

[analyzer] Add a test forgotten in r339088.

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

LLVM — llvm/trunk/include/llvm module.modulemap, llvm/trunk/include/llvm/Support CFGUpdate.h

Add proper headers in CFGUpdate.h and add CFGDiff.h in the list of delayed headers for 
LLVM_intrinsic_gen.

Summary:
Fix module build after r339694.
Add headers needed in CFGUpdate.h.
Add CFGDiff.h in the list of delayed headers for LLVM_intrinsic_gen.
Up for post-commit review.

Subscribers: sanjoy, jlebar, llvm-commits

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

LLVM — llvm/trunk/lib/Transforms/Vectorize LoopVectorizationLegality.cpp

NFC: Clarify comment in loop vectorization legality

Clarifying the comment about PSCEV and external IV users by referencing
the bug in question.

LLVM — cfe/trunk/lib/CodeGen CGStmt.cpp, cfe/trunk/test/CodeGen x86-inline-asm-min-vector-width.c

[InlineAsm] Update the min-legal-vector-width function attribute based on inputs and 
outputs to inline assembly

Summary:
Another piece of my ongoing to work for prefer-vector-width.

min-legal-vector-width will eventually be used by the X86 backend to know whether it needs 
to make 512 bits type legal when prefer-vector-width=256. If the user used inline assembly 
that passed in/out a 512-bit register, we need to make sure 512 bits are considered legal. 
Otherwise we'll get an assert failure when we try to wire up the inline assembly to the 
rest of the code.

This patch just checks the LLVM IR types to see if they are vectors and then updates the 
attribute based on their total width. I'm not sure if this is the best way to do this or 
if there's any subtlety I might have missed. So if anyone has other opinions on how to do 
this I'm open to suggestions.

Reviewers: chandlerc, rsmith, rnk

Reviewed By: rnk

Subscribers: eraman, cfe-commits

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

LLVM — cfe/trunk/lib/Driver/ToolChains Darwin.cpp

SafeStack: Disable Darwin support

Summary:
Darwin support does not appear to be used as evidenced by the fact that
the runtime has never supported non-trivial programs.

Reviewers: pcc, kubamracek

Reviewed By: pcc

Subscribers: cfe-commits, kcc

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

LLVM — llvm/branches/release_70/docs ReleaseNotes.rst

[ReleaseNotes] Fix a typo

LLVM — llvm/branches/release_70/docs ReleaseNotes.rst

[ReleaseNotes] Add release notes for Hexagon

LLVM — lldb/trunk/source/Utility ConstString.cpp

Remove asseration from ConstString::GetConstCStringAndSetMangledCounterPart() to fix more 
tests first

LLVM — lldb/trunk/unittests/Interpreter TestCompletion.cpp

Stability improvements for CompletionTest

Summary:
CompletionTest.DirCompletionAbsolute had a random failure on a CI node
(in the failure, the completion count was 0, while we expected it to be 1),
but there seems no good reason for it to fail. The sanitizers don't complain
about the test when it's run, so I think we don't have some uninitialized
memory that we access here.

My best bet is that the unique directory selection randomly failed on the CI
node because maybe the FS there doesn't actually guarantee the atomic fopen
assumptions we make in the LLVM code (or some other funny race condition).
In this case a different test run could get the same directory and clean its contents
which would lead to 0 results.

The other possible explanation is that someone changed the CI configuration
on the node and changed the working dir to something very long, which would
make our PATH_MAX test fail (which also leads to 0 results), but I think that case
is unlikely.

This patch is just a stab in the dark that (hopefully) fixes this random failure by
giving each test a (more) unique working directory by appending the unique
test name to the temp-dir prefix. Also adds one more ASSERT_NO_ERROR to
one of our chdir calls just in case that is the reason for failing.


    [12 lines not shown]

LLVM — llvm/trunk/include/llvm/BinaryFormat Dwarf.def Dwarf.h, llvm/trunk/include/llvm/IR DebugInfoMetadata.h DIBuilder.h

[DebugInfoMetadata] Added DIFlags interface in DIBasicType.

Flags in DIBasicType will be used to pass attributes used in
DW_TAG_base_type, such as DW_AT_endianity.

Patch by Chirag Patel!

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

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

[InstCombine] fix typos in tests; NFC

See D50036.

LLVM — llvm/trunk/test/CodeGen/WebAssembly simd-arith.ll simd.ll

[WebAssembly] SIMD encoding tests

Modifies existing SIMD tests to also check that SIMD instructions are
lowered to the expected bytes. This CL depends on D50597.

Reviewers: aheejin

Subscribers: sunfish, jgravelle-google, sbc100, llvm-commits

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

Patch by Thomas Lively (tlively)

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

[InstCombine] add tests for pow->sqrt; NFC

D50036 should fix the missed optimizations.

LLVM — llvm/trunk/lib/Target/WebAssembly WebAssemblyInstrCall.td WebAssemblyInstrControl.td

[WebAssembly] Fix encoding of non-SIMD vector-typed instructions

Previously SIMD_I was the same as a normal instruction except for the
addition of a HasSIM128 predicate. However, rL339186 changed the
encoding of SIMD_I instructions to automatically contain the SIMD
prefix byte. This broke the encoding of non-SIMD vector-typed
instructions, which had instantiated SIMD_I. This CL corrects this
error.

Reviewers: aheejin

Subscribers: sunfish, jgravelle-google, sbc100, llvm-commits

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

Patch by Thomas Lively (tlively)

LLVM — cfe/trunk/test CMakeLists.txt

[analyzer] Fix bots by removing new check-clang-analyzer commands from CHECK-ALL
Delta File
+4 -0 cfe/trunk/test/CMakeLists.txt
+4 -0 1 file

LLVM — llvm/trunk/lib/Demangle MicrosoftDemangle.cpp, llvm/trunk/test/Demangle ms-mangle.test ms-return-qualifiers.test

[MS Demangler] Fix some minor formatting bugs.

1) We print __restrict twice on member pointers.  This is fixed
   and relevant tests are re-enabled.

2) Several tests were disabled because of printing slightly
   different output than undname.  These were confirmed to be
   bugs in undname, so we just re-enable the tests.

3) The test for printing reference temporaries is re-enabled.  This
   is a clang mangling extension, so we have some flexibility with
   how we demangle it.  The output currently looks fine, so we just
   re-enable the test with no fixes.

LLVM — llvm/trunk/lib/Target/WebAssembly WebAssemblyInstrSIMD.td, llvm/trunk/test/CodeGen/WebAssembly simd.ll

[WebAssembly] SIMD extract_lane

Implement instruction selection for all versions of the extract_lane
instruction. Use explicit sext/zext to differentiate between
extract_lane_s and extract_lane_u for applicable types, otherwise
default to extract_lane_u.

Reviewers: aheejin

Subscribers: sunfish, jgravelle-google, sbc100, llvm-commits

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

Patch by Thomas Lively (tlively)

LLVM — llvm/trunk/include/llvm/Target TargetInstrPredicate.td, llvm/trunk/lib/Target/X86 X86SchedPredicates.td

[Tablegen][MCInstPredicate] Removed redundant template argument from class TIIPredicate, 
and implemented verification rules for TIIPredicates.

This patch removes redundant template argument `TargetName` from TIIPredicate.
Tablegen can always infer the target name from the context. So we don't need to
force users of TIIPredicate to always specify it.

This allows us to better modularize the tablegen class hierarchy for the
so-called "function predicates". class FunctionPredicateBase has been added; it
is currently used as a building block for TIIPredicates. However, I plan to
reuse that class to model other function predicate classes too (i.e. not just
TIIPredicates). For example, this can be a first step towards implementing
proper support for dependency breaking instructions in tablegen.

This patch also adds a verification step on TIIPredicates in tablegen.
We cannot have multiple TIIPredicates with the same name. Otherwise, this will
cause build errors later on, when tablegen'd .inc files are included by cpp
files and then compiled.

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

LLVM — cfe/trunk/include/clang/Basic Attr.td, cfe/trunk/lib/AST ASTContext.cpp DeclPrinter.cpp

[OPENMP] Fix processing of declare target construct.

The attribute marked as inheritable since OpenMP 5.0 supports it +
additional fixes to support new functionality.