Displaying 1 50 of 189,784 commits (0.060s)

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/trunk/lib/Target/R600 SIISelLowering.cpp

Enable (sext x) == C --> x == (trunc C) combine

Extend the existing code which handles this for zext. This makes this
more useful for targets with ZeroOrNegativeOne BooleanContent and
obsoletes a custom combine SI uses for i1 setcc (sext(i1), 0, setne)
since the constant will now be shrunk to i1.

LLVM — lldb/trunk/include/lldb/Symbol FuncUnwinders.h CompactUnwindInfo.h, lldb/trunk/source/Plugins/UnwindAssembly/x86 UnwindAssembly-x86.cpp

Various unwinder work.  

Most of the changes are to the FuncUnwinders class -- as we've added
more types of unwind information, the way this class was written was
making it a mess to maintain.  Instead of trying to keep one
"non-call site" unwind plan and one "call site" unwind plan, track
all the different types of unwind plans we can possibly retrieve for
each function and have the call-site/non-call-site accessor methods
retrieve those.

Add a real "fast unwind plan" for x86_64 / i386 -- when doing an
unwind through a function, this only has to read the first 4 bytes 
to tell if the function has a standard prologue sequence.  If so, 
we can use the architecture default unwind plan to backtrace 
through this function.  If we try to retrieve the save location for
other registers later on, a real unwind plan will be used.  This
one is just for doing fast backtraces.

Change the compact unwind plan importer to fill in the valid address
range it is valid for. 

Compact unwind, in theory, may have multiple entries for a single
function.  The FuncUnwinders rewrite includes the start of supporting
this correctly.  In practice compact unwind encodings are used for
the entire range of the function today -- in fact, sometimes the same

    [3 lines not shown]

LLVM — cfe/trunk/include/clang/Driver Action.h Tool.h, cfe/trunk/lib/Driver Driver.cpp Tools.cpp

Reapply "Change -save-temps to emit unoptimized bitcode files."

This reapplies r224503 along with a fix for compiling Fortran by having the
clang driver invoke gcc (see r224546, where it was reverted). I have added
a testcase for that as well.

Original commit message:
It is often convenient to use -save-temps to collect the intermediate
results of a compilation, e.g., when triaging a bug report. Besides the
temporary files for preprocessed source and assembly code, this adds the
unoptimized bitcode files as well.

This adds a new BackendJobAction, which is mostly mechanical, to run after
the CompileJobAction. When not using -save-temps, the BackendJobAction is
combined into one job with the CompileJobAction, similar to the way the
integrated assembler is handled. I've implemented this entirely as a
driver change, so under the hood, it is just using -disable-llvm-optzns
to get the unoptimized bitcode.

Based in part on a patch by Steven Wu.

LLVM — llvm/trunk/lib/Target/X86 X86InstrInfo.td

[X86] Swap operand order in Intel syntax on a bunch of aliases.

LLVM — llvm/trunk/lib/Target/X86 X86InstrInfo.td

[X86] Swap operand order of imul aliases in Intel syntax. Also disable printing of the 
alias instead of the real instruction.

LLVM — llvm/trunk/lib/Target/X86 X86InstrInfo.td

[X86] Remove '*' from asm strings in far call/jump aliases for Intel syntax.

LLVM — llvm/trunk/lib/Target/X86 X86InstrControl.td

[X86] Don't swap the order of segment and offset in immediate form of far call/jump in 
Intel syntax.

LLVM — llvm/trunk/lib/CodeGen StackProtector.cpp

CodeGen: constify and use range loop for SSP

Use range-based for loop and constify the iterators.  NFC.

LLVM — llvm/trunk/lib/Target/ARM ARMInstrInfo.td, llvm/trunk/lib/Target/ARM/MCTargetDesc ARMMCTargetDesc.cpp

ARM: further improve deprecated diagnosis (LDM)

The ARM ARM states:
    The SP can be in the list. However, ARM deprecates using these instructions
    with SP in the list.

    ARM deprecates using these instructions with both the LR and the PC in the

    The SP can be in the list. However, instructions that include the SP in the
    list are deprecated.

    Instructions that include both the LR and the PC in the list are deprecated.

    The SP can only be in the list before ARMv7. ARM deprecates any use of ARM
    instructions that include the SP, and the value of the SP after such an
    instruction is UNKNOWN.

    ARM deprecates the use of this instruction with both the LR and the PC in
    the list.

Attempt to diagnose use of deprecated forms of these instructions.  This mirrors
the previous changes to diagnose use of the deprecated forms of STM in ARM mode.

LLVM — cfe/trunk/lib/Frontend TextDiagnostic.cpp

Frontend: Fix typo in comments.

LLVM — llvm/trunk/tools/llvm-objdump MachODump.cpp

strnlen isn't available on some platforms, use StringRef instead

LLVM — llvm/trunk/lib/Target/X86 X86InstrControl.td

[X86] Immediate forms of far call/jump are not valid in x86-64.

LLVM — llvm/trunk/test/Transforms/InstCombine select.ll

This should have been part of r224676.

LLVM — llvm/trunk/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/trunk/test/Transforms/InstCombine select.ll

InstCombine: Squash an icmp+select into bitwise arithmetic

(X & INT_MIN) == 0 ? X ^ INT_MIN : X  into  X | INT_MIN
(X & INT_MIN) != 0 ? X ^ INT_MIN : X  into  X & INT_MAX

This fixes PR21993.

LLVM — llvm/trunk/lib/Analysis InstructionSimplify.cpp

InstSimplify: Don't bother if getScalarSizeInBits returns zero

getScalarSizeInBits returns zero when the comparison operands are not
integral.  No functionality change intended.

LLVM — libcxx/trunk/test lit.cfg

Move unconditional test compile and link flags into their configuration functions.
Delta File
+4 -2 libcxx/trunk/test/lit.cfg
+4 -2 1 file

LLVM — llvm/trunk/lib/Analysis InstructionSimplify.cpp

Simplify the code

No functionality change intended.

LLVM — llvm/trunk/utils/lit/lit TestRunner.py

Split executeShTest into two parts so that it can be better leveraged by libc++
Delta File
+18 -13 llvm/trunk/utils/lit/lit/TestRunner.py
+18 -13 1 file

LLVM — libcxx/trunk CMakeLists.txt, libcxx/trunk/test lit.cfg CMakeLists.txt

[libcxx] Teach libcxx's lit configuration new ways to find lit.site.cfg

Currently to run tests in tree you need to symlink the lit.site.cfg file generated by the 
cmake build into the source tree, and teach your VCS to ignore it.

This allows the user to specify where to find the lit.site.cfg file two different ways:
* lit_site_config lit parameter
* LIT_SITE_CONFIG enviroment variable. 

example usage:
lit -sv --param=libcxx_site_config=path/to/libcxx-build/test/lit.site.cfg path/to/tests
export LIBCXX_SITE_CONFIG=path/to/libcxx-build/test/lit.site.cfg
lit -sv path/to/tests
The command line parameter will override the environment variable. 
If neither options are present a warning is issued and the `lit.cfg` file is loaded 

Reviewers: mclow.lists, jroelofs, danalbert

    [6 lines not shown]

LLVM — lldb/trunk/include/lldb/Symbol CompactUnwindInfo.h, lldb/trunk/source/Symbol CompactUnwindInfo.cpp

Re-enable compact unwind use on Mac platforms.
When lldb has a binary with protected section contents,
don't use the on-disk representation of that compact 
uwnind -- read it only out of live memory where it has
been decrypted.

LLVM — llvm/trunk/include/llvm/IR PatternMatch.h, llvm/trunk/lib/Analysis InstructionSimplify.cpp

InstSimplify: Optimize away pointless comparisons

(X & INT_MIN) ? X & INT_MAX : X  into  X & INT_MAX
(X & INT_MIN) ? X : X & INT_MAX  into  X
(X & INT_MIN) ? X | INT_MIN : X  into  X
(X & INT_MIN) ? X : X | INT_MIN  into  X | INT_MIN

LLVM — cfe/trunk/lib/AST ASTDiagnostic.cpp

Fix a bunch of integer template argument problems in template type diffing.

Reverts most of the changes from r168005.  Since template arguments have proper
conversions now, no extending of integers is needed.  Further, since the
integers are the correct size now, use APSInt::operator== instead of
APSInt::hasSameValue since operator== will check the size and signness match.

Prior to one comparison of APSInt's, check that both are valid.  Previous, one
could be uninitialized.  Also changed APInt to APSInt in GetInt.  This
occassionally produced a sign flip, which will now be caught by operator==.
Delta File
+10 -20 cfe/trunk/lib/AST/ASTDiagnostic.cpp
+10 -20 1 file

LLVM — cfe/trunk/lib/AST ASTDiagnostic.cpp, cfe/trunk/lib/Sema SemaTemplate.cpp

Fix for PR21758

When a non-type template argument expression needs a conversion to change it
into the argument type, preserve that information by remaking the
TemplateArgument with an expression that has those conversions.  Also a small
fix to template type diffing to handle the extra conversions in some cases.

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

[SROA] Run clang-format over the entire SROA pass as I wrote it before
much of the glory of clang-format, and now any time I touch it I risk
introducing formatting changes as part of a functional commit.

Also, clang-format is *way* better at formatting my code than I am.
Most of this is a huge improvement although I reverted a couple of
places where I hit a clang-format bug with lambdas that has been filed
but not (fully) fixed.
Delta File
+138 -157 llvm/trunk/lib/Transforms/Scalar/SROA.cpp
+138 -157 1 file

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

[x86] Change the test added in r223774 to first check the spelling of
the error message for a bogus processor, and then look specifically for
that error message using FileCheck.

I actually tried to write the test this way at first, but drew a blank
on how to ensure the error message stayed in sync (oops). Now that I've
recalled how to do that, this is clearly better.

It also fixes an issue with a malloc implementation that actually prints
to stderr in all cases, which was causing problems for some builders it
Delta File
+33 -26 llvm/trunk/test/CodeGen/X86/cpus.ll
+33 -26 1 file

LLVM — llvm/trunk/lib/CodeGen LiveIntervalAnalysis.cpp

LiveIntervalAnalysis: No kill flags for partially undefined uses.

We must not add kill flags when reading a vreg with some undefined
subregisters, if subreg liveness tracking is enabled.  This is because
the register allocator may reuse these undefined subregisters for other
values which are not killed.

LLVM — llvm/trunk/lib/CodeGen LiveIntervalAnalysis.cpp

LiveIntervalAnalysis: cleanup addKills(), NFC

- Use more const modifiers
- Use references for things that can't be nullptr
- Improve some variable names

LLVM — cfe/trunk/lib/Parse ParseStmt.cpp

Removing an outdated FIXME; try block attributes are parsed with the rest of the statement 
attributes (as per the standard), and function-try-blocks may not have attributes. NFC.
Delta File
+0 -1 cfe/trunk/lib/Parse/ParseStmt.cpp
+0 -1 1 file

LLVM — llvm/trunk/tools/lto CMakeLists.txt

Unbreak cmake build with shared libraries enabled.

LLVM — lldb/trunk/source/Core ValueObject.cpp

Cleanup some redundant code

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

Remove unused variable and initialization.

LLVM — cfe/trunk/lib/Driver Tools.cpp

Driver: hoist an assertion

Remove an unnecessary conditional, hoisting the assertion.  Minor style
tweaks/reflowing.  NFC.
Delta File
+4 -10 cfe/trunk/lib/Driver/Tools.cpp
+4 -10 1 file

LLVM — cfe/trunk/lib/Driver Tools.cpp

Driver: refactor a local variable

Pull out a getToolChain() into a local variable to share the call across to all
the uses.  NFC.
Delta File
+10 -10 cfe/trunk/lib/Driver/Tools.cpp
+10 -10 1 file

LLVM — lldb/trunk/source/Host/posix PipePosix.cpp

No need to call SetErrorToErrno when pipe2 succeeds.


LLVM — cfe/trunk/lib/Sema SemaTemplate.cpp, cfe/trunk/test/SemaTemplate explicit-instantiation.cpp function-template-specialization-noreturn.cpp

Don't drop attributes when checking explicit specializations.

Consider a template class with attributes on a method, and an explicit
specialization of that method:

    template <int>
    struct A {
      void foo() final;

    template <>
    void A<0>::foo() {}

In this example, the attribute is `final`, but it might also be an
__attribute__((visibility("foo"))), noreturn, inline, etc. clang's current
behavior is to strip all attributes, which for some attributes is wrong
(the snippet above allows a subclass of A<0> to override the final method, for
example) and for others disagrees with gcc.

So stop dropping attributes. r95845 added this code without a test case, and
r176728 added the code for dropping attributes on parameters (with tests, but
they still pass).

As an additional wrinkle, do drop dllimport and dllexport, since that's how
these two attributes work. (This is covered by existing tests.)

    [6 lines not shown]

LLVM — llvm/trunk/lib/Target/Mips MipsSubtarget.cpp MipsSubtarget.h

Remove unused variable, initializer, and accessor.

LLVM — cfe/trunk/lib/CodeGen ModuleBuilder.cpp, cfe/trunk/test/CodeGenCXX pr21989.cc

Tweak the assert in ModuleBuilder from r224533 (PR21989)

Turns out there will be left-over deferred inline methods if there have
been errors, because in that case HandleTopLevelDecl bails out early.

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

R600: Remove outdated comment

LLVM — llvm/trunk/lib/Target/X86 X86InstrSSE.td X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 masked_memop.ll

Masked load and store codegen - fixed 128-bit vectors
The codegen failed on 128-bit types on AVX2.
I added patterns and in td files and tests.

LLVM — llvm/trunk/lib/Target/R600 AMDGPUISelLowering.cpp, llvm/trunk/test/CodeGen/R600 fmax_legacy.ll fmin_legacy.ll

R600/SI: Only form min/max with 1 use.

If the condition is used for something else, this increases
the number of instructions.

LLVM — lldb/trunk/test/python_api/event TestEvents.py

[TestEvents] Replace expectedFailureLinux with skipIfLinux

If we do not mark them as skip, they are still executed, which in
turn is leading to an assertion failure. The change also adds
skipIfLinux to a testlet which was not previously marked with
skipIfLinux. This is because running even that test let leads to an
assertion failure.

Test Plan: dotest.py -C clang -p TestEvents.py

Reviewers: vharron

Reviewed By: vharron

Subscribers: lldb-commits

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

LLVM — lldb/tags/RELEASE_351 rc2

Creating release candidate rc2 from release_351 branch
Delta File
+0 -0 lldb/tags/RELEASE_351/rc2/
+0 -0 1 file

LLVM — llvm/trunk/lib/CodeGen/AsmPrinter EHStreamer.cpp EHStreamer.h

EH: Sink computation of local PadMap variable into function that uses it

No functionality change.

LLVM — libcxx/tags/RELEASE_351 rc2

Creating release candidate rc2 from release_351 branch
Delta File
+0 -0 libcxx/tags/RELEASE_351/rc2/
+0 -0 1 file

LLVM — dragonegg/tags/RELEASE_351 rc2

Creating release candidate rc2 from release_351 branch
Delta File
+0 -0 dragonegg/tags/RELEASE_351/rc2/
+0 -0 1 file

LLVM — cfe/tags/RELEASE_351 rc2

Creating release candidate rc2 from release_351 branch
Delta File
+0 -0 cfe/tags/RELEASE_351/rc2/
+0 -0 1 file

LLVM — llvm/tags/RELEASE_351 rc2

Creating release candidate rc2 from release_351 branch
Delta File
+0 -0 llvm/tags/RELEASE_351/rc2/
+0 -0 1 file

LLVM — llvm/trunk/utils/lit/lit Test.py

[LIT] Add JSONMetricValue type to wrap types supported by the json encoder.

The following types can be encoded and decoded by the json library:
`dict`, `list`, `tuple`, `str`, `unicode`, `int`, `long`, `float`, `bool`, `NoneType`. 

`JSONMetricValue` can be constructed with any of these types, and used as part of 
This patch also adds a toMetricValue function that converts a value into a MetricValue.

Reviewers: ddunbar, EricWF

Reviewed By: EricWF

Subscribers: cfe-commits, llvm-commits

Differential Revision: http://reviews.llvm.org/D6576
Delta File
+36 -0 llvm/trunk/utils/lit/lit/Test.py
+36 -0 1 file

LLVM — libcxx/trunk/include/experimental type_traits, libcxx/trunk/test/experimental/utilities meta

[libcxx] Add <experimental/type_traits> for LFTS

This adds the <experimental/type_traits> (minus invocation traits). Mostly just the `_v` 

Reviewers: K-ballo, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

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