Displaying 1 50 of 180,970 commits (0.012s)

LLVM — llvm/trunk/test/CodeGen/X86 stackmap-nops.ll, llvm/trunk/test/MC/X86 stackmap-nops.ll

[X86] Add comments to clarify some non-obvious lines in the stackmap-nops.ll
testcases.

Based on code review from Philip Reames. Thanks Philip!

LLVM — cfe/trunk/include/clang/Lex MacroInfo.h Preprocessor.h, cfe/trunk/include/clang/Serialization ASTReader.h

[modules] Substantially improve handling of #undef:

 * Track override set across module load and save
 * Track originating module to allow proper re-export of #undef
 * Make override set properly transitive when it picks up a #undef

This fixes nearly all of the remaining macro issues with self-host.

LLVM — llvm/trunk/tools/llvm-vtabledump llvm-vtabledump.cpp

llvm-vtabledump: use a std::map instead of a StringMap for VBTables

StringMap doesn't guarantee any particular iteration order,
this is suboptimal when comparing llvm-vtabledump's output for two
object files.

LLVM — llvm/trunk/lib/ProfileData CoverageMappingReader.cpp

Fix a warning in CoverageMappingReader.cpp

LLVM — cfe/trunk/test/CodeGen ms-inline-asm.c

Fix test/CodeGen/ms-inline-asm.c from r213916.

LLVM — cfe/trunk/test/CodeGen ms-inline-asm.cpp

Fix test/CodeGen/ms-inline-asm.cpp from r213916.

LLVM — llvm/trunk/lib/Target/X86 X86AsmPrinter.h X86MCInstLower.cpp

[X86] Clarify some stackmap shadow optimization code as based on review
feedback from Eric Christopher.

No functional change.

LLVM — cfe/trunk/lib/Parse ParseStmtAsm.cpp, cfe/trunk/test/CodeGen ms-inline-asm.c ms-inline-asm.cpp

clang-cl: Merge adjacent single-line __asm blocks

Summary:
This patch extends the __asm parser to make it keep parsing input tokens
as inline assembly if a single-line __asm line is followed by another line
starting with __asm too.  It also makes sure that we correctly keep
matching braces in such situations by separating the notions of how many
braces we are matching and whether we are in single-line asm block mode.

Reviewers: rnk

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4598

LLVM — llvm/trunk/lib/Target/PowerPC PPCInstrAltivec.td PPCISelLowering.cpp, llvm/trunk/test/CodeGen/PowerPC vec_shuffle_le.ll

[PATCH][PPC64LE] Correct little-endian usage of vmrgh* and vmrgl*.

Because the PowerPC vmrgh* and vmrgl* instructions have a built-in
big-endian bias, it is necessary to swap their inputs in little-endian
mode when using them to implement a vector shuffle.  This was
previously missed in the vector LE implementation.

There was already logic to distinguish between unary and "normal"
vmrg* vector shuffles, so this patch extends that logic to use a third
option:  "swapped" vmrg* vector shuffles that are used for little
endian in place of the "normal" ones.

I've updated the vec-shuffle-le.ll test to check for the expected
register ordering on the generated instructions.

This bug was discovered when testing the LE and ELFv2 patches for
safety if they were backported to 3.4.  A different vectorization
decision was made in 3.4 than on mainline trunk, and that exposed the
problem.  I've verified this fix takes care of that issue.

LLVM — lldb/trunk/source/Plugins/UnwindAssembly/x86 UnwindAssembly-x86.cpp

Fix an x86 assembler stack unwind calculation for non-volatile registers.

This change has the practical effect of fixing some backtrace
scenarios that would fail with inferiors running on the Android Art
host-side JVM under Linux x86_64 on Ubuntu 14.04.

See this lldb-commits thread for more details:
http://lists.cs.uiuc.edu/pipermail/lldb-commits/Week-of-Mon-20140721/011988.html

Change by Tong Shen.
Reviewed by Jason Molenda.

Tested:
Ubuntu 14.04 x86_64, clang-3.5-built lldb.
MacOSX 10.10 Preview 4, Xcode 6 Beta 4-built lldb.

LLVM — cfe/trunk/lib/Sema TreeTransform.h SemaExprCXX.cpp, cfe/trunk/test/CodeGenCXX cxx0x-initializer-stdinitializerlist.cpp

PR20445: Properly transform the initializer in a CXXNewExpr rather than running
it through the normal TreeTransform logic for Exprs (which will strip off
implicit parts of the initialization and never re-create them).

LLVM — cfe/trunk/lib/AST ASTDiagnostic.cpp, cfe/trunk/test/Misc diag-template-diffing.cpp

Pass the PrintingPolicy when converting types to strings in template type
diffing.  This removes extra "struct"/"class" in the type names and gives
"bool" instead of "_Bool" for booleans.

LLVM — llvm/branches/release_35/lib/Target/X86 X86ISelLowering.cpp, llvm/branches/release_35/test/CodeGen/X86 sse41.ll

Merge r213826

------------------------------------------------------------------------
r213826 | filcab | 2014-07-23 18:28:21 -0700 (Wed, 23 Jul 2014) | 7 lines

Fixed PR20411 - bug in getINSERTPS()

When we had a vector_shuffle where we had an input from each vector, we
could miscompile it because we were assuming the input from V2 wouldn't
be moved from where it was on the vector.

Added a test case.

LLVM — llvm/trunk/include/llvm/ProfileData CoverageMappingReader.h CoverageMapping.h, llvm/trunk/lib/ProfileData CoverageMappingReader.cpp CoverageMappingWriter.cpp

Add code coverage mapping data, reader, and writer.

This patch implements the data structures, the reader and
the writers for the new code coverage mapping system. 
The new code coverage mapping system uses the instrumentation
based profiling to provide code coverage analysis.

LLVM — llvm/trunk/lib/ProfileData CMakeLists.txt LLVMBuild.txt

Add code coverage mapping data, reader, and writer.

This patch implements the data structures, the reader and
the writers for the new code coverage mapping system. 
The new code coverage mapping system uses the instrumentation
based profiling to provide code coverage analysis.

LLVM — llvm/trunk/test/Object nm-trivial-object.test nm-universal-binary.test, llvm/trunk/tools/llvm-nm llvm-nm.cpp

Add an implementation for llvm-nm’s -print-file-name option (aka -o and -A).

The -print-file-name option in llvm-nm is to precede each symbol
with the object file it came from.  While code for the parsing of this
option and its aliases existed there was no code to implement it.

LLVM — llvm/trunk/test CMakeLists.txt lit.cfg

Opportunistically fix the builders

A builder complained that it couldn't find llvm-vtabledump, this is
probably because it wasn't a dependency of the 'test' target.

LLVM — lldb/trunk/source/Host/common Host.cpp

Fix configure/make builds on MacOSX.

Change by Keno Fischer.

LLVM — llvm/trunk/test/tools llvm-vtabledump, llvm/trunk/test/tools/llvm-vtabledump trivial.test Inputs

llvm-vtabledump: A vtable dumper

This tool's job is to dump the vtables inside object files.  It is
currently limited to MS ABI vf- and vb-tables but it will eventually
support Itanium-style v-tables as well.

Differential Revision: http://reviews.llvm.org/D4584

LLVM — cfe/trunk/lib/AST ASTDiagnostic.cpp, cfe/trunk/test/Misc diag-template-diffing.cpp

Print "(default)" for default template template arguments to match the
printing of other types.

LLVM — llvm/trunk/lib/Transforms/Scalar LoopUnrollPass.cpp, llvm/trunk/test/Transforms/LoopUnroll unroll-pragmas-disabled.ll

After unrolling a loop with llvm.loop.unroll.count metadata (unroll factor
hint) the loop unroller replaces the llvm.loop.unroll.count metadata with
llvm.loop.unroll.disable metadata to prevent any subsequent unrolling
passes from unrolling more than the hint indicates.  This patch fixes
an issue where loop unrolling could be disabled for other loops as well which
share the same llvm.loop metadata.

LLVM — llvm/trunk/lib/Target/PowerPC PPCISelLowering.cpp, llvm/trunk/test/CodeGen/PowerPC ppc32-lshrti3.ll

Don't use 128bit functions on PPC32.

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/trunk/test/CodeGen/AArch64 arm64-dagcombiner-indexed-load.ll

[SDAG] Introduce a combined set to the DAG combiner which tracks nodes
which have successfully round-tripped through the combine phase, and use
this to ensure all operands to DAG nodes are visited by the combiner,
even if they are only added during the combine phase.

This is critical to have the combiner reach nodes that are *introduced*
during combining. Previously these would sometimes be visited and
sometimes not be visited based on whether they happened to end up on the
worklist or not. Now we always run them through the combiner.

This fixes quite a few bad codegen test cases lurking in the suite while
also being more principled. Among these, the TLS codegeneration is
particularly exciting for programs that have this in the critical path
like TSan-instrumented binaries (although I think they engineer to use
a different TLS that is faster anyways).

I've tried to check for compile-time regressions here by running llc
over a merged (but not LTO-ed) clang bitcode file and observed at most
a 3% slowdown in llc. Given that this is essentially a worst case (none
of opt or clang are running at this phase) I think this is tolerable.
The actual LTO case should be even less costly, and the cost in normal
compilation should be negligible.

With this combining logic, it is possible to re-legalize as we combine
which is necessary to implement PSHUFB formation on x86 as

    [3 lines not shown]

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG LegalizeVectorOps.cpp, llvm/trunk/lib/Target/X86 X86ISelLowering.cpp

[x86] Make vector legalization of extloads work more like the "normal"
vector operation legalization with support for custom target lowering
and fallback to expand when it fails, and use this to implement sext and
anyext load lowering for x86 in a more principled way.

Previously, the x86 backend relied on a target DAG combine to "combine
away" sextload and extload nodes prior to legalization, or would expand
them during legalization with terrible code. This is particularly
problematic because the DAG combine relies on running over non-canonical
DAG nodes at just the right time to match several common and important
patterns. It used a combine rather than lowering because we didn't have
good lowering support, and to expose some tricks being employed to more
combine phases.

With this change it becomes a proper lowering operation, the backend
marks that it can lower these nodes, and I've added support for handling
the canonical forms that don't have direct legal representations such as
sextload of a v4i8 -> v4i64 on AVX1. With this change, our test cases
for this behavior continue to pass even after the DAG combiner beigns
running more systematically over every node.

There is some noise caused by this in the test suite where we actually
use vector extends instead of subregister extraction. This doesn't
really seem like the right thing to do, but is unlikely to be a critical
regression. We do regress in one case where by lowering to the

    [6 lines not shown]

LLVM — llvm/trunk/lib/Target TargetLibraryInfo.cpp

Target: invert condition for Windows

The Microsoft ABI and MSVCRT are considered the canonical C runtime and ABI.
The long double routines are not part of this environment.  However, cygwin and
MinGW both provide supplementary implementations.  Change the condition to
reflect this reality.

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

Feedback from Hans on r213815. No functionaility change.

LLVM — llvm/trunk/lib/Support/Windows Process.inc

Windows: Don't wildcard expand /? or -?

Even if there's a file called c:\a, we want /? to be preserved as
an option, not expanded to a filename.

LLVM — cfe/trunk/examples/clang-interpreter main.cpp

Use ELF in the clang-interpreter on windows.

We don't support loading COFF files yet.

LLVM — llvm/trunk/include/llvm/CodeGen AsmPrinter.h, llvm/trunk/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[X86] Optimize stackmap shadows on X86.

This patch minimizes the number of nops that must be emitted on X86 to satisfy
stackmap shadow constraints.

To minimize the number of nops inserted, the X86AsmPrinter now records the
size of the most recent stackmap's shadow in the StackMapShadowTracker class,
and tracks the number of instruction bytes emitted since the that stackmap
instruction was encountered. Padding is emitted (if it is required at all)
immediately before the next stackmap/patchpoint instruction, or at the end of
the basic block.

This optimization should reduce code-size and improve performance for people
using the llvm stackmap intrinsic on X86.

<rdar://problem/14959522>

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

Replace an assertion with a fatal error

Frontends are responsible for putting inalloca on parameters that would
be passed in memory and not registers.

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

Use the same .eh_frame encoding for 32bit PPC as on i386.

LLVM — libcxx/trunk/include/experimental utility, libcxx/trunk/test/experimental/utilities/utility/utility.erased.type erased_type.pass.cpp

[libcxx] expose experimental::erased_type for all standard versions.

Summary: The polymorphic allocator implementation would greatly benefit by defining 
virtual functions in the dynlib instead of inline. In order to do that some types are 
going to have to be available outside of c++1y. This is the first step.

Reviewers: mclow.lists, EricWF

Reviewed By: EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4554

LLVM — libcxx/trunk/include __tuple tuple, libcxx/trunk/test/utilities/tuple/tuple.tuple/tuple.cnstr const_Types.pass.cpp move.pass.cpp

D4451: Fix copy/move issues casude by __tuple_leafs's converting constructor

LLVM — libcxx/trunk/test/support nothing_to_do.pass.cpp

test commit

LLVM — cfe/trunk/include/clang-c Index.h

Preserve libclang ABI compatibility with  the 3.5 release
Delta File
+7 -7 cfe/trunk/include/clang-c/Index.h
+7 -7 1 file

LLVM — cfe/trunk/docs ReleaseNotes.rst, cfe/trunk/include/clang/Basic AttrDocs.td Attr.td

Add support for #pragma nounroll.

LLVM — llvm/trunk/test/Transforms/SimplifyCFG switch-table-bug.ll, llvm/trunk/test/Transforms/SimplifyCFG/X86 switch-table-bug.ll

Try to fix the bots again by moving test to X86 directory.

LLVM — llvm/trunk/lib/Target TargetLibraryInfo.cpp, llvm/trunk/test/MC/X86 x86-windows-itanium-libcalls.ll

X86: correct library call setup for Windows itanium

This target is identical to the Windows MSVC (and follows Microsoft ABI for C).
Correct the library call setup for this target.  The same set of library calls
are missing on this environment.

LLVM — llvm/trunk/lib/Target/R600 EvergreenInstructions.td R600Instructions.td, llvm/trunk/test/CodeGen/R600 fma.f64.ll fma.ll

R600: Add FMA instructions for Evergreen

LLVM — cfe/trunk/examples/clang-interpreter CMakeLists.txt

Attempt at fixing the windows shared build.

LLVM — llvm/trunk/test/Transforms/SimplifyCFG switch-table-bug.ll

Try to fix the bots. If this does not work, I am going to move it to X86 directory.

LLVM — cfe/trunk/examples/clang-interpreter main.cpp CMakeLists.txt

Use MCJIT.

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

X86: silence sign comparison warning

GCC 4.8 detected a signed compare [-Wsign-compare].  Add a cast for the
destination index.  Add an assert to catch a potential overflow however unlikely
it may be.

LLVM — llvm/trunk/lib/Target/R600 AMDGPUISelLowering.cpp AMDGPUISelLowering.h

R600: Add new functions for splitting vector loads and stores.

These will be used in future patches and shouldn't change anything yet.

LLVM — llvm/trunk/lib/MC/MCParser AsmParser.cpp, llvm/trunk/test/MC/AsmParser macro-exitm.s

Let the integrated assembler understand .exitm, PR20426.

LLVM — lldb/trunk/test/functionalities/thread/exit_during_step TestExitDuringStep.py

We were turning off all these tests on OSX and FreeBSD because of a known (and fairly 
unimportant) bug.  
Keep a test for that bug, but let the useful parts of the test run anyway.

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

Remove unused field MacroInstantiation::TheMacro. No behavior change.

LLVM — llvm/trunk/lib/MC/MCParser AsmParser.cpp, llvm/trunk/test/MC/AsmParser directive-warning.s

Let the integrated assembler understand .warning, PR20428.

LLVM — llvm/trunk/lib/Target/Mips MipsOptionRecord.h

Include relative path for header outside the current directory.

LLVM — llvm/trunk/include/llvm/ExecutionEngine ExecutionEngine.h, llvm/trunk/lib/ExecutionEngine ExecutionEngine.cpp

Remove dead code.

Every user has been switched to using EngineBuilder.