Displaying 1 50 of 255,315 commits (0.019s)

LLVM — llvm/trunk/lib/Target/AArch64 AArch64Subtarget.h

[Target] Remove some code probably copy/pasted from another backend.

LLVM — cfe/trunk/include/clang/Basic DiagnosticSerializationKinds.td, cfe/trunk/lib/AST ODRHash.cpp

Revert r298742 "[ODRHash] Add error messages for mismatched parameters in methods."

I failed to revert this in r298816.

LLVM — llvm/trunk/lib/Target/AArch64 AArch64SchedA53.td

[MachineScheduler] Reference the correct header.

LLVM — lld/trunk/ELF Relocations.cpp

Factor out code to add a GOT entry.
Delta File
+28 -22 lld/trunk/ELF/Relocations.cpp
+28 -22 1 file

LLVM — llvm/trunk/include/llvm/Support GenericDomTree.h

Fix typo in comment; NFC

LLVM — lld/trunk/ELF Relocations.cpp

Factor out common code.
Delta File
+15 -13 lld/trunk/ELF/Relocations.cpp
+15 -13 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Remove MIPS-specific code from computeAddend.

Previously, computeAddend had many parameters but most of them were
used only for MIPS. The MIPS ABI is too odd that I don't want to mix
it into the regular code path. Splitting the function into non-MIPS
and MIPS parts makes the regular code path easy to follow.
Delta File
+56 -51 lld/trunk/ELF/Relocations.cpp
+56 -51 1 file

LLVM — cfe/trunk/include/clang/Basic DiagnosticSerializationKinds.td, cfe/trunk/lib/AST ODRHash.cpp

Revert 298754 and 298742.

They broke llvm modules builds and our internal modules infrastructure.

LLVM — lld/trunk/ELF Relocations.cpp

Do not use assert to report broken input files.
Delta File
+5 -1 lld/trunk/ELF/Relocations.cpp
+5 -1 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Update comments.
Delta File
+4 -1 lld/trunk/ELF/Relocations.cpp
+4 -1 1 file

LLVM — llvm/trunk/include/llvm/IR Instructions.h

Fix signed/unsigned comparison warnings.

LLVM — llvm/trunk/tools/llvm-readobj COFFDumper.cpp

[llvm-readobj] Prefer ILT to IAT for reading COFF imports

We're seeing binutils ld produce binaries where the import address
table's NameRVA entry is actually a VA instead (i.e. it's already base
relocated), which llvm-readobj then chokes on. Both dumpbin and the
Windows loader are able to handle these binaries correctly, however, and
we can make llvm-readobj handle them correctly too by iterating the
import lookup table (which doesn't have a relocated NameRVA) rather than
the import address table.

The import lookup table and the import address table are supposed to be
identical on disk, and prior to r277298 the import lookup table would be
used by `llvm-readobj -coff-imports` anyway, so this shouldn't have any
functional change (except in the case of our malformed binaries). The
import lookup table can apparently be missing when using old Borland
linkers, so fall back to the import address table in that case.

Resolves PR31766.

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

LLVM — llvm/trunk/lib/Transforms/Utils LoopUnrollPeel.cpp, llvm/trunk/test/Transforms/LoopUnroll peel-loop2.ll

[LoopUnroll] Remap references in peeled iteration

References in cloned blocks must be remapped prior to dominator
calculation.

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

LLVM — lldb/trunk/include/lldb/Host Config.h Editline.h, lldb/trunk/include/lldb/Host/openbsd Config.h HostInfoOpenBSD.h

[LLDB] OpenBSD support

Summary:
Add basic OpenBSD support. This is enough to be able to analyze core dumps for 
OpenBSD/amd64, OpenBSD/arm, OpenBSD/arm64 and OpenBSD/i386.

Note that part of the changes to source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp fix a bug 
that probably affects other platforms as well.  The GetProgramHeaderByIndex() interface 
use 1-based indices, but in some case when looping over the headers the, the loop starts 
at 0 and misses the last header.  This caused problems on OpenBSD since OpenBSD core dumps 
have the PT_NOTE segment as the last program header.


Reviewers: joerg, labath, krytarowski

Reviewed By: krytarowski

Subscribers: aemerson, emaste, rengolin, srhines, krytarowski, mgorny, lldb-commits

Tags: #lldb

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

LLVM — llvm/trunk/include/llvm/IR Instructions.h

[IR] Switch to more normal template parameter names ending in `T`
instead of `Ty`.

The `Ty` suffix is much more commonly used for LLVM `Type` variable
names, so this seemed like a particularly confusing collision.

LLVM — llvm/trunk/include/llvm/IR Instructions.h

Fix signed/unsigned comparison warnings.

LLVM — llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 combine-abs.ll

[X86][SSE] Add computeKnownBitsForTargetNode support for (V)PSLL/(V)PSRL instructions

LLVM — llvm/trunk/lib/Target/X86 X86InstrAVX512.td, llvm/trunk/test/CodeGen/X86 fast-isel-select-sse.ll

[X86][AVX512F] Fix reg class for VMOVSSZrr/VMOVSSZrrk and VMOVSDZrr/VMOVSDZrrk

Fixed -verify-machineinstrs errors in fast-isel-select-sse.ll (one of many in PR27481)

The VMOVSSZrr/VMOVSSZrrk and VMOVSDZrr/VMOVSDZrrk instructions were assuming both source 
registers were V128X when the second is actually supposed to be FR32X/FR64X

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

LLVM — llvm/trunk/include/llvm/IR Instructions.h

Fix MSVC signed/unsigned comparison warnings.

LLVM — llvm/trunk/test/CodeGen/X86 sse-intrinsics-fast-isel.ll

Regenerate test

LLVM — llvm/trunk/test/CodeGen/X86 merge-consecutive-loads-128.ll

Regenerate test

The CHECK-DAG aren't necessary and get in the way of automated checks

LLVM — llvm/trunk/test/CodeGen/X86 avx2-vbroadcast.ll

Regenerate tests to remove duplicated checks

LLVM — llvm/trunk/lib/Target/X86 X86InstructionSelector.cpp X86LegalizerInfo.cpp, llvm/trunk/test/CodeGen/X86/GlobalISel frameIndex-instructionselect.mir frameIndex.ll

 [GlobalISel][X86] support G_FRAME_INDEX instruction selection.

    Summary:
    Support G_FRAME_INDEX instruction selection.

    Reviewers: zvi, rovka, ab, qcolombet

    Reviewed By: ab

    Subscribers: llvm-commits, dberris, kristof.beyls, eladcohen, guyblank

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

LLVM — llvm/trunk/include/llvm InitializePasses.h LinkAllPasses.h, llvm/trunk/include/llvm-c/Transforms Scalar.h

Split the SimplifyCFG pass into two variants.

The first variant contains all current transformations except
transforming switches into lookup tables. The second variant
contains all current transformations.

The switch-to-lookup-table conversion results in code that is more
difficult to analyze and optimize by other passes. Most importantly,
it can inhibit Dead Code Elimination. As such it is often beneficial to
only apply this transformation very late. A common example is inlining,
which can often result in range restrictions for the switch expression.

Changes in execution time according to LNT:
SingleSource/Benchmarks/Misc/fp-convert +3.03%
MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk -11.20%
MultiSource/Benchmarks/Olden/perimeter/perimeter -10.43%
and a couple of smaller changes. For perimeter it also results 2.6%
a smaller binary.

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

LLVM — llvm/trunk/tools/llvm-shlib CMakeLists.txt

Add check for BSD when setting LIB_NAMES for GNU ld

Patch by Koop Mast and Alex Arslan!

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

LLVM — lld/trunk/ELF InputSection.cpp Relocations.h

Sort. NFC.

LLVM — lld/trunk/ELF Relocations.cpp Target.cpp

Remove a redundant local variable.

LLVM — lld/trunk/ELF Relocations.cpp

Add a comment.
Delta File
+1 -0 lld/trunk/ELF/Relocations.cpp
+1 -0 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Inline a function that is used only once.
Delta File
+5 -6 lld/trunk/ELF/Relocations.cpp
+5 -6 1 file

LLVM — lld/trunk/ELF Relocations.cpp

De-template a few functions in which ELFT is not needed.
Delta File
+31 -32 lld/trunk/ELF/Relocations.cpp
+31 -32 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Add comments and return early.
Delta File
+19 -9 lld/trunk/ELF/Relocations.cpp
+19 -9 1 file

LLVM — llvm/trunk/include/llvm/IR Instructions.h, llvm/trunk/lib/IR Instructions.cpp

[IR] Make SwitchInst::CaseIt almost a normal iterator.

This moves it to the iterator facade utilities giving it full random
access semantics, etc. It can also now be used with standard algorithms
like std::all_of and std::any_of and range adaptors like llvm::reverse.

Also make the semantics of iterating match what every other iterator
uses and forbid decrementing past the begin iterator. This was used as
a hacky way to work around iterator invalidation. However, every
instance trying to do this failed to actually avoid touching invalid
iterators despite the clear documentation that the removed and all
subsequent iterators become invalid including the end iterator. So I've
added a return of the next iterator to removeCase and rewritten the
loops that were doing this to correctly follow the iterator pattern of
either incremneting or removing and assigning fresh values to the
iterator and the end.

In one case we were trying to go backwards to make this cleaner but it
doesn't actually work. I've made that code match the code we use
everywhere else to remove cases as we iterate. This changes the order of
cases in one test output and I moved that test to CHECK-DAG so it
wouldn't care -- the order isn't semantically meaningful anyways.

LLVM — lld/trunk/ELF Relocations.cpp

Remove unused parameter.
Delta File
+8 -8 lld/trunk/ELF/Relocations.cpp
+8 -8 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Remove redundant local variables.
Delta File
+3 -5 lld/trunk/ELF/Relocations.cpp
+3 -5 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Remove a parameter from adjustExpr. NFC.
Delta File
+4 -8 lld/trunk/ELF/Relocations.cpp
+4 -8 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Inline a small lambda.
Delta File
+8 -9 lld/trunk/ELF/Relocations.cpp
+8 -9 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Rename C -> Sec and RI -> Rel.

C is short for Chunk, but we are no longer using that term.
RI is probably short for relocation iterator, but this is not an interator.
Delta File
+26 -26 lld/trunk/ELF/Relocations.cpp
+26 -26 1 file

LLVM — lld/trunk/ELF Relocations.cpp

Simplify relocation offset adjustment.

Previously, relocation offsets are recalculated for .eh_frame sections
inside the main loop, and that messed up the main loop. This patch
separates that logic into a dedicated class.
Delta File
+50 -25 lld/trunk/ELF/Relocations.cpp
+50 -25 1 file

LLVM — cfe/trunk/lib/CodeGen CGCoroutine.cpp CGExprComplex.cpp, cfe/trunk/test/CodeGenCoroutines coro-await.cpp

[coroutines] Add codegen for await and yield expressions

Details:

Emit suspend expression which roughly looks like:

auto && x = CommonExpr();
if (!x.await_ready()) {
   llvm_coro_save();
   x.await_suspend(...);     (*)
   llvm_coro_suspend(); (**)
}
x.await_resume();
where the result of the entire expression is the result of x.await_resume()

(*) If x.await_suspend return type is bool, it allows to veto a suspend:
if (x.await_suspend(...))
   llvm_coro_suspend();
(**) llvm_coro_suspend() encodes three possible continuations as a switch instruction:

%where-to = call i8 @llvm.coro.suspend(...)
switch i8 %where-to, label %coro.ret [ ; jump to epilogue to suspend
  i8 0, label %yield.ready   ; go here when resumed
  i8 1, label %yield.cleanup ; go here when destroyed
]

LLVM — llvm/trunk/lib/Target/X86 X86ISelLowering.cpp

[X86] Pull out repeated ScalarValueSizeInBits code. NFCI.

LLVM — llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 combine-and.ll

[X86][SSE] Combine (VSRLI (VSRAI X, Y), (NumSignBits-1)) -> (VSRLI X, (NumSignBits-1))

Part 3 of 3.

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

LLVM — llvm/trunk/include/llvm/IR Intrinsics.td, llvm/trunk/test/Bitcode compatibility-3.9.ll compatibility-4.0.ll

Change the default attributes for llvm.prefetch to inaccessiblemem_or_argmemonly
so that we can perform some optimizations across it.

Fixes PR32365

LLVM — llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 combine-and.ll

[X86][SSE] Added ComputeNumSignBitsForTargetNode support for (V)PSRAI

Part 2 of 3.

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

LLVM — llvm/trunk/lib/Target/X86 X86ISelLowering.cpp

[X86][SSE] Generalised CMP+AND1 combine to ZERO/ALLBITS+MASK

Patch to generalize combinePCMPAnd1 (for handling SETCC + ZEXT cases) to work for any 
input that has zero/all bits set masked with an 'all low bits' mask.

Replaced the implicit assumption of shift availability with a call to 
SupportedVectorShiftWithImm.

Part 1 of 3.

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

LLVM — cfe/trunk/lib/Basic Targets.cpp, cfe/trunk/test/Preprocessor init.c

_CALL_LINUX is only defined on 64-bit ppc linux platforms, not 32-bit.
Adjust and add a test for the 32-bit side.

LLVM — lldb/trunk/source/Plugins/UnwindAssembly/x86 CMakeLists.txt

PluginUnwindAssemblyX86: add missing linkage to MCDisasm

Add missing linkage of the lldbPluginUnwindAssemblyX86 to LLVMMCDisasm
library. This fixes the following build failure when linking against
shared libraries:

    
lib64/liblldbPluginUnwindAssemblyX86.a(x86AssemblyInspectionEngine.cpp.o):x86AssemblyInspectionEngine.cpp:function 
lldb_private::x86AssemblyInspectionEngine::instruction_length(unsigned char*, int&): 
error: undefined reference to 'LLVMDisasmInstruction'
    
lib64/liblldbPluginUnwindAssemblyX86.a(x86AssemblyInspectionEngine.cpp.o):x86AssemblyInspectionEngine.cpp:function 
lldb_private::x86AssemblyInspectionEngine::~x86AssemblyInspectionEngine(): error: 
undefined reference to 'LLVMDisasmDispose'
    
lib64/liblldbPluginUnwindAssemblyX86.a(x86AssemblyInspectionEngine.cpp.o):x86AssemblyInspectionEngine.cpp:function 
lldb_private::x86AssemblyInspectionEngine::x86AssemblyInspectionEngine(lldb_private::ArchSpec 
const&): error: undefined reference to 'LLVMCreateDisasm'

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

LLVM — lldb/trunk/source/Expression CMakeLists.txt

Expression: add missing linkage to RuntimeDyld component

Add missing linkage from lldbExpression library to LLVMRuntimeDyld.
Otherwise the build against shared LLVM libraries fails with:

    lib64/liblldbExpression.a(IRExecutionUnit.cpp.o):IRExecutionUnit.cpp:function 
llvm::RTDyldMemoryManager::deregisterEHFrames(unsigned char*, unsigned long, unsigned 
long): error: undefined reference to 
'llvm::RTDyldMemoryManager::deregisterEHFramesInProcess(unsigned char*, unsigned long)'

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

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

[x86] use PMOVMSK to replace memcmp libcalls for 16-byte equality

This is the payoff for D31156 - if a target has efficient comparison instructions for 
vector-sized equality, 
we can replace memcmp calls with inline code that is both smaller and faster.

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

LLVM — llvm/trunk/test/CodeGen/X86 known-signbits-vector.ll

[X86][SSE] Add extra computeNumSignBits test case for D31311.

LLVM — cfe/trunk/lib/Basic Targets.cpp

[AMDGPU] Make AMDGPUTargetInfo::AS private
Delta File
+1 -2 cfe/trunk/lib/Basic/Targets.cpp
+1 -2 1 file