Displaying 1 50 of 259,394 commits (0.027s)

LLVM — cfe/trunk/unittests/Format FormatTestObjC.cpp

[clang-format] Remove unused using directive, NFC

LLVM — cfe/trunk/include/clang/Tooling CompilationDatabase.h, cfe/trunk/lib/Frontend CreateInvocationFromCommandLine.cpp

Method loadFromCommandLine should be able to report errors

Now FixedCompilationDatabase::loadFromCommandLine has no means to report
which error occurred if it fails to create compilation object. This is
a block for implementing D33013, because after that change driver will
refuse to create compilation if command line contains erroneous options.

This change adds additional argument to loadFromCommandLine, which is
assigned error message text if compilation object was not created. This is
the same way as other methods of CompilationDatabase report failure.

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

LLVM — lldb/trunk/packages/Python/lldbsuite/test/expression_command/unwind_expression TestUnwindExpression.py, lldb/trunk/source/Target Process.cpp

Revert "RunThreadPlan: Fix halting logic in IgnoreBreakpoints = false"

This reverts commit r303732, as it introduces a regression in
TestLoadUnload on android.

LLVM — cfe/trunk/include/clang/Format Format.h, cfe/trunk/lib/Format ContinuationIndenter.cpp Format.cpp

clang-format: Introduce BreakConstructorInitializers option

This option replaces the BreakConstructorInitializersBeforeComma option with an enum, thus 
introducing a mode where the colon stays on the same line as constructor declaration:

  // When it fits on line:
  Constructor() : initializer1(), initializer2() {}

  // When it does not fit:
  Constructor() :
      initializer1(), initializer2()

  // When ConstructorInitializerAllOnOneLineOrOnePerLine = true:
  Constructor() :

Reviewers: krasimir, djasper

Reviewed By: djasper

Subscribers: cfe-commits, klimek

    [2 lines not shown]

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

Demangler: Fix constructor cv qualifier handling

Previously if we parsed a constructor then we set parsed_ctor_dtor_cv
to true and never reseted it. This causes issue when a template argument
references a constructor (e.g. type of lambda defined inside a
constructor) as we will have the parsed_ctor_dtor_cv flag set what will
cause issues when parsing later arguments.

Differential Revision: https://reviews.llvm.org/D33385
libcxxabi change: https://reviews.llvm.org/rL303737

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

Strip trailing whitespace. NFCI.

LLVM — cfe/trunk/lib/Lex LiteralSupport.cpp

Fix 'set but not used' [-Wunused-but-set-variable] warning

LLVM — llvm/trunk/lib/Target/ARM ARMTargetMachine.cpp ARMTargetMachine.h

[ARM] Remove ThumbTargetMachines. (NFC)

Thumb code generation is controlled by ARMSubtarget and the concrete
ThumbLETargetMachine and ThumbBETargetMachine are not needed.

Eric Christopher suggested removing the unneeded target machines in

I think it still makes sense to keep separate TargetMachines for big and
little endian as we probably do not want to have different endianess for
difference functions in a single compilation unit. The MIPS backend has
two separate TargetMachines for big and little endian as well. 

Reviewers: echristo, rengolin, kristof.beyls, t.p.northover

Reviewed By: echristo

Subscribers: aemerson, javed.absar, arichardson, llvm-commits

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

LLVM — lldb/trunk/packages/Python/lldbsuite/test/expression_command/unwind_expression TestUnwindExpression.py, lldb/trunk/source/Target Process.cpp

RunThreadPlan: Fix halting logic in IgnoreBreakpoints = false

The function had logic to handle the case when the expression terminated
while we were trying to halt the process, but it failed to take into
account the possibility that the expression stopped because it hit a
breakpoint. This was caused by the fact that the handling of the stopped
events was duplicated for the "halting" and regular cases (the regular
case handled this situation correctly). I've tried to merge these two
cases into one to make sure they stay in sync.

I should call out that the two cases were checking whether the thread
plan has completed in slightly different ways. I am not sure what is the
difference between them, but I think the check should be the same in
both cases, whatever it is, so I just took the one from the regular
case, as that is probably more tested.

For the test, I modified TestUnwindExpression to run the expression with
a smaller timeout (this is how I found this bug originally). With a 1ms
one thread timeout, the test failed consistently without this patch.

Reviewers: jingham

Subscribers: lldb-commits

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

LLVM — llvm/trunk/lib/CodeGen MachineCSE.cpp, llvm/trunk/test/CodeGen/MIR/Generic machine-cse-physreg.mir

MachineCSE: Respect interblock physreg liveness

This is a fix for PR32538. MachineCSE first looks at MO.isDead(), but
if it is not marked dead, MachineCSE still wants to do its own check
to see if it is trivially dead. This check for the trivial case
assumed that physical registers cannot be live out of a block.

Patch by Mattias Eriksson.

Reviewers: qcolombet, jbhateja

Reviewed By: qcolombet, jbhateja

Subscribers: jbhateja, llvm-commits

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

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

[SCEV] Do not fold dominated SCEVUnknown into AddRecExpr start

When folding arguments of AddExpr or MulExpr with recurrences, we rely on the fact that
the loop of our base recurrency is the bottom-lost in terms of domination. This assumption
may be broken by an expression which is treated as invariant, and which depends on a 
Phi for which SCEVUnknown was created. If such Phi is a loop Phi, and this loop is lower 
the chosen AddRecExpr's loop, it is invalid to fold our expression with the recurrence.

Another reason why it might be invalid to fold SCEVUnknown into Phi start value is that 
other SCEVs, SCEVUnknown are sometimes position-bound. For example, here:

for (...) { // loop
  phi = {A,+,B}
X = load ...
Folding phi + X into {A+X,+,B}<loop> actually makes no sense, because X does not exist and 
exist while we are iterating in loop (this memory can be even not allocated and not filled 
by this moment).
It is only valid to make such folding if X is defined before the loop. In this case the 
recurrence {A+X,+,B}<loop>
may be existant.

    [8 lines not shown]

LLVM — llvm/trunk/test/CodeGen/X86/GlobalISel select-leaf-constant.mir

Explicitly set CPU and -slow-incdec to try to fix r303678's test on 

LLVM — llvm/trunk/lib/Support APInt.cpp

[APInt] Use std::end to avoid mentioning the size of a local buffer repeatedly.
Delta File
+2 -2 llvm/trunk/lib/Support/APInt.cpp
+2 -2 1 file

LLVM — llvm/trunk/test/CodeGen/X86/GlobalISel select-leaf-constant.mir

Revert r303720: Tweak r303678's test to try to fix llvm-clang-x86_64-expensive-checks-win.

It doesn't fix that builder.

LLVM — llvm/trunk/test/CodeGen/X86/GlobalISel select-leaf-constant.mir

Tweak r303678's test to try to fix llvm-clang-x86_64-expensive-checks-win.

I suspect this buildbot has slow-incdec set by default, most likely due to
the default CPU having this set. This feature bit can prevent optsize from
having an effect on this IR.

LLVM — cfe/trunk/include/clang/Basic XRayLists.h, cfe/trunk/lib/Basic XRayLists.cpp

[XRay][clang] Allow imbuing arg1 logging attribute via -fxray-always-instrument=

This change allows us to add arg1 logging support to functions through
the special case list provided through -fxray-always-instrument=. This
is useful for adding arg1 logging to functions that are either in
headers that users don't have control over (i.e. cannot change the
source) or would rather not do.

It only takes effect when the pattern is matched through the "fun:"
special case, as a category. As in:


Reviewers: pelikan, rnk

Subscribers: cfe-commits

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

LLVM — llvm/trunk/lib/Target/ARM ARMInstrNEON.td ARMScheduleR52.td

[ARM] Add VLDx/VSTx sched defs for machine-schedulers. NFCI

This patch adds missing scheds for Neon VLDx/VSTx instructions.
This will help one write schedulers easier/faster in the future for ARM sub-targets.
Existing models will not affected by this patch.
Reviewed by: Renato Golin, Diana Picus
Differential Revision: https://reviews.llvm.org/D33120

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

[coroutines] Implement correct GRO lifetime

Sema creates a declaration for gro variable as:

auto $gro = $promise.get_return_object();

However, gro variable has to outlive coroutine frame and coroutine promise, but,
it can only be initialized after the coroutine promise was created, thus, we
split its emission in two parts: EmitGroAlloca emits an alloca and sets up
the cleanups. Later when the coroutine promise is available we initialize
the gro and set the flag that the cleanup is now active.

Duplicate of: https://reviews.llvm.org/D31670 (which arc patch refuses to apply for some 

Reviewers: GorNishanov, rsmith

Reviewed By: GorNishanov

Subscribers: EricWF, cfe-commits

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

LLVM — llvm/trunk/lib/Transforms/Scalar NewGVN.cpp, llvm/trunk/test/Transforms/NewGVN pr32836.ll

[NewGVN] Update additionalUsers when we simplify to a value.

Otherwise we don't revisit an instruction that could be simplified,
and when we verify, we discover there's something that changed, i.e.
what we had wasn't a maximal fixpoint.

Fixes PR32836.

LLVM — cfe/trunk/lib/CodeGen CGCoroutine.cpp

[coroutines] Fix leak in CGCoroutine.cpp

FinalBB need to be emitted even when unused to make sure it is deleted

LLVM — cfe/trunk/lib/Lex PPMacroExpansion.cpp, cfe/trunk/test/SemaObjC diagnose_if.m

Change __has_feature(objc_diagnose_if_attr) to __has_feature(attribute_diagnose_if_objc) 
for consistency with rest of attribute checks.

LLVM — cfe/trunk/include/clang/Basic Attr.td DiagnosticSemaKinds.td, cfe/trunk/include/clang/Sema Sema.h AttributeList.h

Enhance the 'diagnose_if' attribute so that we can apply it for ObjC methods and 
properties as well

This is an initial commit to allow using it with constant expressions, a follow-up commit 
will enable full support for it in ObjC methods.

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

Fix broken build.

LLVM — llvm/trunk/lib/Transforms/Instrumentation SanitizerCoverage.cpp, llvm/trunk/test/Instrumentation/SanitizerCoverage chains.ll

Revert "Disable coverage opt-out for strong postdominator blocks."

This reverts commit 2ed06f05fc10869dd1239cff96fcdea2ee8bf4ef.
Buildbots do not like this on Linux.

LLVM — llvm/trunk/test/Instrumentation/SanitizerCoverage coverage.ll tracing.ll

Revert "Fixes for tests for r303698"

This reverts commit 69bfaf72e7502eb08bbca88a57925fa31c6295c6.

LLVM — llvm/trunk/utils/git-svn git-llvm

git-llvm script should add .exe on Windows.
Delta File
+2 -0 llvm/trunk/utils/git-svn/git-llvm
+2 -0 1 file

LLVM — lld/trunk/COFF PDB.cpp, llvm/trunk/include/llvm/DebugInfo/CodeView TypeStreamMerger.h

Don't do a full scan of the type stream before processing records.

LazyRandomTypeCollection is designed for random access, and in
order to provide this it lazily indexes ranges of types.  In the
case of types from an object file, there is no partial index
to build off of, so it has to index the full stream up front.
However, merging types only requires sequential access, and when
that is needed, this extra work is simply wasted.  Changing the
algorithm to work on sequential arrays of types rather than
random access type collections eliminates this up front scan.

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

[SCCP] Use the `hasAddressTaken()` version defined in `Function`.

Instead of using the SCCP homegrown one. We should eventually
make the private SCCP version disappear, but that wont' be today.
PR33143 tracks this issue.

Add braces for consistency while here. No functional change intended.

LLVM — cfe/trunk/lib/Sema SemaDecl.cpp SemaLookup.cpp, cfe/trunk/test/Modules diagnose-missing-import.m

[Modules] Fix overly conservative assertion for import diagnostic

We currenltly assert when want to diagnose a missing import and the decl
in question is already visible. It turns out that the decl in question
might be visible because another decl from the same module actually made
the module visible in a previous error diagnostic.

Remove the assertion and avoid re-exporting the module if it's already


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

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

[LIR] Use the newly `getRecurrenceVar()` helper. NFCI.

LLVM — lld/trunk/ELF MapFile.cpp Writer.cpp

Clear OutSec->Sections.

Once the dummy linker script is created, we want it to be used for
everything to avoid having two redundant representations that can get
out of sync.

We were already clearing OutputSections. With this patch we clear the
Sections vector of every OutputSection.

LLVM — lld/trunk/ELF LinkerScript.cpp LinkerScript.h

Use more strict types. NFC.

By the time we get to linker scripts, all special InputSectionBase
should have been combined into synthetic sections, which are a type of
InputSection. The net result is that we can use InputSection in a few
places that were using InputSectionBase.

LLVM — llvm/trunk/test/Instrumentation/SanitizerCoverage coverage.ll tracing.ll

Fixes for tests for r303698

LLVM — llvm/trunk/lib/Transforms/Scalar LoopIdiomRecognize.cpp, llvm/trunk/test/Transforms/LoopIdiom pr33114.ll

[LIR] Strengthen the check for recurrence variable in popcnt/CTLZ.

Fixes PR33114.
Differential Revision:  https://reviews.llvm.org/D33420

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

[modules] When reparenting a local declaration, don't mark the declaration as
being visible with its owning module if we're not tracking owning modules for
local declarations.

This avoids the possibility of a declaration being (meaninglessly) marked as
hidden with no owning module, which would otherwise lead to violated AST
invariants (checked by the added assertion).
Delta File
+11 -3 cfe/trunk/lib/AST/DeclBase.cpp
+11 -3 1 file

LLVM — llvm/trunk/lib/Transforms/Instrumentation SanitizerCoverage.cpp, llvm/trunk/test/Instrumentation/SanitizerCoverage chains.ll

Disable coverage opt-out for strong postdominator blocks.

Coverage instrumentation has an optimization not to instrument extra
blocks, if the pass is already "accounted for" by a
successor/predecessor basic block.
However (https://github.com/google/sanitizers/issues/783) this
reasoning may become circular, which stops valid paths from having
In the worst case this can cause fuzzing to stop working entirely.

This change simplifies logic to something which trivially can not have
such circular reasoning, as losing valid paths does not seem like a
good trade-off for a ~15% decrease in the # of instrumented basic blocks.

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

Revert LLVM changes for "Sema: allow imaginary constants via GNU extension if UDL 
overloads not present."

The changes accidentally crept into a Clang commit I was making.

LLVM — llvm/trunk/utils/git-svn git-llvm

[git-llvm] Check if svn is installed.

The error message that git-llvm script prints out when svn is missing
is very cryptic. I spent a fair amount of time to find what was wrong
with my environment. It looks like many newcomers also exprienced a
hard time to submit their first patches due to this error.

This patch adds a more user-friendly error message.

Differential Revision: https://reviews.llvm.org/D33458
Delta File
+8 -0 llvm/trunk/utils/git-svn/git-llvm
+8 -0 1 file

LLVM — llvm/trunk/lib/Target/MSP430 MSP430ISelLowering.cpp MSP430Subtarget.cpp, llvm/trunk/test/CodeGen/MSP430 hwmult16.ll hwmult32.ll

[MSP430] Add subtarget features for hardware multiplier.

Also add more processors to make -mcpu option behave similar to gcc.

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

LLVM — cfe/trunk/include/clang/Basic DiagnosticSemaKinds.td DiagnosticLexKinds.td, cfe/trunk/include/clang/Sema Sema.h

Sema: allow imaginary constants via GNU extension if UDL overloads not present.

C++14 added user-defined literal support for complex numbers so that you can
write something like "complex<double> val = 2i". However, there is an existing
GNU extension supporting this syntax and interpreting the result as a _Complex

This changes parsing so that such literals are interpreted in terms of C++14's
operators if an overload is present but otherwise falls back to the original
GNU extension.

LLVM — llvm/trunk/lib/IR Attributes.cpp

Silence MSVC warning about unsigned integer overflow, which has defined behavior
Delta File
+3 -1 llvm/trunk/lib/IR/Attributes.cpp
+3 -1 1 file

LLVM — llvm/trunk/utils/abtest abtest.py

abtest: remove duplicate script

This is fixing a mistake from r303690.

Differential Revision: https://reviews.llvm.org/D33303
Delta File
+0 -234 llvm/trunk/utils/abtest/abtest.py
+0 -234 1 file

LLVM — llvm/trunk/lib/Target/AMDGPU R600RegisterInfo.td, llvm/trunk/test/CodeGen/AMDGPU kernel-args.ll load-global-i16.ll

[AMDGPU] Add INDIRECT_BASE_ADDR to R600_Reg32 class (PR33045)

This fixes 17 of the 41 -verify-machineinstrs test failures identified in PR33045

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

LLVM — llvm/trunk/lib/CodeGen/AsmPrinter AsmPrinter.cpp, llvm/trunk/test/CodeGen/AArch64 asm-print-comments.ll

AsmPrinter: mark the beginning and the end of a function in verbose mode

LLVM — lld/trunk/ELF Driver.cpp, lld/trunk/test/ELF build-id.s

ELF: The later of --build-id and --build-id= wins.

If the compiler driver passes --build-id and the user uses -Wl to
pass --build-id= then the user's flag should take precedence.

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

LLVM — llvm/branches/release_40/utils/release merge-request.sh

Merging r303685:

r303685 | tstellar | 2017-05-23 16:35:38 -0400 (Tue, 23 May 2017) | 5 lines

merge-request.sh: Use https url for bugzilla

With the http url, the script fails with:

Connection lost/failed: 411 Client Error: Length Required

LLVM — llvm/branches/release_40/lib/CodeGen SafeStackColoring.cpp, llvm/branches/release_40/test/Transforms/SafeStack/X86 coloring.ll coloring2.ll

Merging r303456:

r303456 | eugenis | 2017-05-19 16:58:48 -0400 (Fri, 19 May 2017) | 3 lines

[safestack] Disable stack coloring by default.

Workaround for apparent miscompilation of PR32143.

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

[Frontend] Don't index into an empty string.

Found by msan!

LLVM — llvm/trunk/utils/release merge-request.sh

merge-request.sh: Use https url for bugzilla

With the http url, the script fails with:

Connection lost/failed: 411 Client Error: Length Required

LLVM — llvm/trunk/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/trunk/test/CodeGen/AMDGPU vector-alloca.ll

AMDGPU/SI: Move the local memory usage related checking after calling convention checking 
in PromoteAlloca

  Promoting Alloca to Vector and Promoting Alloca to LDS are two independent handling of 
Alloca and should not affect each other.
As a result, we should not give up promoting to vector if there is not enough LDS. This 
patch factors out the local memory usage
related checking out and replace it after the calling convention checking.


Differential Revision: