Displaying 1 50 of 257,370 commits (0.019s)

LLVM — llvm/trunk/lib/Analysis IVUsers.cpp, llvm/trunk/test/Analysis/IVUsers quadradic-exit-value.ll

[IVUsers] Don't bail out of normalizing non-affine add recs

Summary:
In a previous change I changed SCEV's normalization / denormalization
to work with non-affine add recs.  So the bailout in IVUsers can be
removed.

Reviewers: atrick, efriedma

Reviewed By: atrick

Subscribers: davide, mcrosier, llvm-commits

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

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

[InstCombine] Add test cases for missing commute handling in ((A ^ C) ^ B) & (B ^ A) -> (B 
^ A) & ~C

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

[InstCombine] Add test cases showing failures to handle commuted patterns after tricking 
the operand complexity sorting.

LLVM — lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint TestStepOverWatchpoint.py

[LLDB][MIPS] Fix typo in TestStepOverWatchpoint.py.

Subscribers: jaydeep, bhushan, lldb-commits, slthakur

LLVM — llvm/trunk/lib/Transforms/InstCombine InstCombineAndOrXor.cpp

[InstCombine] Use commutable matchers to reduce some code. NFC

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

[LV] Remove redundant basic block split

This patch is part of D28975's breakdown.

Genreating the control-flow to guard predicated instructions modified to
only use SplitBlockAndInsertIfThen() for producing the if-then construct.

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

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

Update doc of the variadic version of getOrInsertFunction

It no longer needs a null terminator.

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

[CodeExtractor]: Fixup use refs of the old phi.

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

LLVM — lld/trunk/ELF Writer.cpp

Define __tls_get_addr as a hidden symbol even for ARM or MIPS.

addIgnored defines a given symbol even if there is no existing
symbol with the same name. So, even if libc provides __tls_get_addr,
we should still be able to call addIgnored.

Differential Revision: https://reviews.llvm.org/D32053
Delta File
+2 -5 lld/trunk/ELF/Writer.cpp
+2 -5 1 file

LLVM — llvm/trunk/lib/Transforms/ObjCARC PtrState.cpp, llvm/trunk/test/Transforms/ObjCARC clang-arc-use-barrier.ll intrinsic-use.ll

[ObjCARC] Do not sink an objc_retain past a clang.arc.use.

We need to do this to prevent a miscompile which sinks an objc_retain
past an objc_release that releases the object objc_retain retains. This
happens because the top-down and bottom-up traversals each determines
the insert point for retain or release individually without knowing
where the other instruction is moved.

For example, when the following IR is fed to the ARC optimizer, the
top-down traversal decides to insert objc_retain right before
objc_release and the bottom-up traversal decides to insert objc_release
right after clang.arc.use.

(IR before ARC optimizer)
%11 = call i8* @objc_retain(i8* %10)
call void (...) @clang.arc.use(%0* %5)
call void @llvm.dbg.value(...)
call void @objc_release(i8* %6)

This reverses the order of objc_release and objc_retain, which causes
the object to be destructed prematurely.

(IR after ARC optimizer)
call void (...) @clang.arc.use(%0* %5)
call void @objc_release(i8* %6)

    [4 lines not shown]

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

[SimplifyLibCalls] Remove a cl::opt that's been `true` for a long time.

LLVM — lld/trunk/COFF Chunks.cpp

Add comments about Widnows .reloc section.
Delta File
+42 -2 lld/trunk/COFF/Chunks.cpp
+42 -2 1 file

LLVM — lld/trunk/test/ELF progname.s

Do not create temporary files in the main source tree.
Delta File
+2 -2 lld/trunk/test/ELF/progname.s
+2 -2 1 file

LLVM — cfe/trunk/lib/Serialization ASTWriter.cpp

Placate MSVC's narrowing conversion unhappiness.

LLVM — lld/trunk/ELF SymbolTable.cpp, lld/trunk/test/ELF progname.s

Export __progname even if a -dynamic-list is given.

BSD's __progname symbol is defined in crt1.o and linked against main
executables. The libc expects that main executables export __progname
symbol via .dynsym sections. In order to handle this case, we scan
undefined symbols in DSOs and exported them by setting Sym->ExportDynamic
to true.

But it turned out that setting that variable is not enough to make sure
that symbols are exported in all use cases. If a -dynamic-list option is
given, all symbols not explicitly mentioned in a version script are
hidden by default. That hides __progname symbol. This patch fixes the issue.

Fixes https://bugs.llvm.org/show_bug.cgi?id=32703

LLVM — llvm/trunk/lib/Analysis ScalarEvolutionNormalization.cpp, llvm/trunk/unittests/Analysis ScalarEvolutionTest.cpp

Teach SCEV normalization to de/normalize non-affine add recs

Summary:
Before this change, SCEV Normalization would incorrectly normalize
non-affine add recurrences.  To work around this there was (still is)
a check in place to make sure we only tried to normalize affine add
recurrences.

We recently found a bug in aforementioned check to bail out of
normalizing non-affine add recurrences.  However, instead of fixing
the bailout, I have decided to teach SCEV normalization to work
correctly with non-affine add recurrences, making the bailout
unnecessary (I'll remove it in a subsequent change).

I've also added some unit tests (which would have failed before this
change).

Reviewers: atrick, sunfish, efriedma

Reviewed By: atrick

Subscribers: mcrosier, mzolotukhin, llvm-commits

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

LLVM — lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/llvm-style main.cc main.cpp, lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/symbols main.cc main.cpp

Name the C++ source files for two tests correctly.

LLVM — lld/trunk/test/ELF progname.s, lld/trunk/test/ELF/Inputs progname-ver.so progname-ver.s

Replace a binary .so with a text .s.

Since LLD is now able to take version scripts, we no longer
have to keep a pre-generated binary file for a test.

LLVM — lld/trunk/ELF Symbols.cpp

Remove a useless temporary variable.
Delta File
+1 -2 lld/trunk/ELF/Symbols.cpp
+1 -2 1 file

LLVM — lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/llvm-style Makefile, lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/symbols Makefile

Fixed two bad Makefiles that might be breaking Linux.

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

InferAddressSpaces: Use reference arguments instead of pointers

LLVM — llvm/trunk/include/llvm/Object ELFTypes.h ELF.h, llvm/trunk/lib/Object ModuleSymbolTable.cpp IRSymtab.cpp

[Object] Fix some Clang-tidy modernize and Include What You Use warnings; other minor 
fixes (NFC).

LLVM — lldb/trunk/packages/Python/lldbsuite/test/lang/cpp symbols llvm-style, lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/llvm-style main.cc TestLLVMStyle.py

[Expression parser] Return both types and variables

Many times a user wants to access a type when there's a variable of
the same name, or a variable when there's a type of the same name.
Depending on the precise context, currently the expression parser
can fail to resolve one or the other.

This is because ClangExpressionDeclMap has logic to limit the
amount of information it searches, and that logic sometimes cuts
down the search prematurely. This patch removes some of those early
exits.

In that sense, this patch trades performance (early exit is faster)
for correctness.

I've also included two new test cases showing examples of this
behavior – as well as modifying an existing test case that gets it
wrong.

LLVM — cfe/trunk/include/clang/Basic Module.h DiagnosticSemaKinds.td, cfe/trunk/lib/Lex ModuleMap.cpp

[modules ts] Diagnose 'export' declarations outside of a module interface.

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

InferAddressSpaces: Remove redundant assert

This is just asserting all the operations are handled in the
switch, which the unreachable already handles.

LLVM — llvm/trunk/test/CodeGen/ARM bool-ext-inc.ll, llvm/trunk/test/CodeGen/X86 bool-ext-inc.ll

[ARM, x86] add more vector tests for bool math; NFC

I'm proposing a fold for increment-of-sexted-bool in:
https://reviews.llvm.org/D31944
...so we need to know what happens in more cases like these.

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

[git-llvm] Remove CR from middle of svn propget output
Delta File
+2 -0 llvm/trunk/utils/git-svn/git-llvm
+2 -0 1 file

LLVM — llvm/trunk/include/llvm/IR Attributes.h, llvm/trunk/lib/Bitcode/Writer BitcodeWriter.cpp ValueEnumerator.cpp

Make getSlotAttributes return an AttributeSet instead of a wrapper list

Remove the temporary, poorly named getSlotSet method which did the same
thing. Also remove getSlotNode, which is a hold-over from when we were
dealing with AttributeSetNode* instead of AttributeSet.

LLVM — lld/trunk/COFF DriverUtils.cpp Driver.h, lld/trunk/test/COFF linkenv.test

Handle _LINK_ env string as command line parameters.

"_LINK_" environment varaible should be appended to the command line.
https://msdn.microsoft.com/en-us/library/6y6t9esh.aspx

Fixes https://bugs.llvm.org/show_bug.cgi?id=32756

LLVM — lldb/trunk/packages/Python/lldbsuite/test/lang/c/inlines main.c, lldb/trunk/source/Plugins/SymbolFile/DWARF DWARFASTParserClang.cpp SymbolFileDWARF.cpp

[DWARF] Fix lookup in the abstract origins of inlined blocks/functions

LLDB uses clang::DeclContexts for lookups, and variables get put into
the DeclContext for their abstract origin. (The abstract origin is a 
DWARF pointer that indicates the unique definition of inlined code.) 
When the expression parser is looking for variables, it locates the 
DeclContext for the current context. This needs to be done carefully, 
though, e.g.:

__attribute__ ((always_inline)) void f(int a) {
  {
    int b = a * 2;
  }
}

void g() {
  f(3);
}
Here, if we're stopped in the inlined copy of f, we have to find the 
DeclContext corresponding to the definition of f – its abstract 
origin. Clang doesn't allow multiple functions with the same name and 
arguments to exist. It also means that any variables we see must be 
placed in the appropriate DeclContext.

[Bug 1]: When stopped in an inline block, the function 

    [51 lines not shown]

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

[git-llvm] Make `push` work on CRLF files with svn:eol-style=native

Summary:
`git apply` on Windows doesn't work for files that SVN checks out as
CRLF. There is no way to force SVN to check everything out with Unix
line endings on Windows. Files with svn:eol-style=native will always
come out with CRLF, breaking `git apply`, which wants Unix line endings.
My workaround is to list all files with this property set in the change,
and run `dos2unix` on them. SVN doesn't commit a massive line ending
change because the svn:eol-style property indicates that these are text
files.

Tested on r301245.

Reviewers: zturner, jlebar

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32452
Delta File
+60 -7 llvm/trunk/utils/git-svn/git-llvm
+60 -7 1 file

LLVM — cfe/trunk/test/Modules localsubmodulevis.m

[Modules] Fix test to wipe out the cache before using it

This should appease bots:
http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental_check/35914

rdar://problem/31796737

LLVM — llvm/trunk/lib/Analysis InstructionSimplify.cpp, llvm/trunk/lib/Transforms/InstCombine InstCombineAndOrXor.cpp

[InstSimplify] use ConstantRange to simplify more and-of-icmps

We can simplify (and (icmp X, C1), (icmp X, C2)) to one of the icmps in many cases. 
I had to check some of these with Alive to prove to myself it's right, but everything 
seems to check out. Eg, the code in instcombine was completely ignoring predicates with 
mismatched signedness.

Handling or-of-icmps would be a follow-up step.

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

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

Remove DefaultSoName.

We can just use the existing SoName member variable. It now initially
contains what was in DefaultSoName and is modified if the .so has an
actual soname.

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

[DAGCombiner] Use APInt::intersects to avoid tmp variable. NFCI.

LLVM — llvm/trunk/lib/Target/AMDGPU SIFrameLowering.cpp

AMDGPU: Slightly simplify prolog reserved register handling

Rely on MachineRegisterInfo's knowledge of used physical
registers.

Move flat_scratch initialization earlier, so the uses are visible
when making these decisions.

This will make it easier to add another reserved register
at the end for the stack pointer rather than handling another
special case.

LLVM — llvm/trunk/docs HowToAddABuilder.rst

Cosmetic change.

LLVM — llvm/trunk/include/llvm/ProfileData InstrProf.h

ProfileData: clean up some stale declarations (NFC)

These were removed in SVN r300381.  Remove the declarations.

LLVM — cfe/trunk/lib/StaticAnalyzer/Core BugReporterVisitors.cpp RegionStore.cpp, cfe/trunk/test/Analysis null-deref-offsets.c

[analyzer] Improve subscripting null arrays for catching null dereferences.

Array-to-pointer cast now works correctly when the pointer to the array
is concrete, eg. null, which allows further symbolic calculations involving
such values.

Inlined defensive checks are now detected correctly when the resulting null
symbol is being array-subscripted before dereference.

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

LLVM — cfe/trunk/lib/CodeGen CodeGenPGO.h CodeGenPGO.cpp

Remove a dead field. NFC.

Suggested by Adam Folwarczny!

LLVM — cfe/trunk/lib/CodeGen CodeGenPGO.cpp, cfe/trunk/test/CoverageMapping empty-destructor.cpp

[Coverage] Avoid null deref in skipRegionMappingForDecl (fixes PR32761)

Patch by Adam Folwarczny!

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

LLVM — llvm/trunk/docs HowToAddABuilder.rst

Small addition on how to add a builder.

LLVM — llvm/trunk/test/MC/AMDGPU gfx9_asm_all.s gfx8_asm_all.s, llvm/trunk/test/MC/Disassembler/AMDGPU gfx8_dasm_all.txt

[AMDGPU][mc][tests][NFC] Bulk ISA tests: update for Gfx7/Gfx8, add for Gfx9.

LLVM — cfe/trunk/test/Driver fuzzer.c

Specify a target explicitly in libfuzzer driver flag test
Delta File
+1 -1 cfe/trunk/test/Driver/fuzzer.c
+1 -1 1 file

LLVM — llvm/trunk/include/llvm/IR Attributes.h, llvm/trunk/lib/Bitcode/Writer BitcodeWriter.cpp ValueEnumerator.h

[Bitcode] Refactor attribute group writing to avoid getSlotAttributes

Summary:
That API creates a temporary AttributeList to carry an index and a
single AttributeSet. We need to carry the index in addition to the set,
because that is how attribute groups are currently encoded.

NFC

Reviewers: pcc

Subscribers: llvm-commits

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

LLVM — llvm/trunk/lib/Transforms/Instrumentation IndirectCallPromotion.cpp, llvm/trunk/test/Transforms/PGOProfile memop_size_opt.ll

Update profile during memory instrinsic optimization

Summary:
Ensure that the new merge BB (which contains the rest of the original BB
after the mem op being optimized) gets a profile frequency, in case
there are additional mem ops later in the BB. Otherwise they get skipped
as the merge BB looks cold.

Reviewers: davidxl, xur

Subscribers: llvm-commits

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

LLVM — llvm/trunk/lib/Transforms/Scalar StructurizeCFG.cpp, llvm/trunk/test/CodeGen/AMDGPU multi-divergent-exit-region.ll nested-loop-conditions.ll

Revert "StructurizeCFG: Directly invert cmp instructions"

This reverts commit r300732. This breaks a few tests.
I think the problem is related to adding more uses of
the condition that don't yet exist at this point.

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

[LoopUnroll] Remove spurious newline.

Eli pointed out in the review, but I didn't squash the two commits
correctly. Pointy-hat to me.

LLVM — llvm/trunk/include/llvm/Support DynamicLibrary.h, llvm/trunk/lib/Support DynamicLibrary.cpp SearchForAddressOfSpecialSymbol.cpp

Revert "Refactor DynamicLibrary so searching for a symbol will have a defined order"
The i686-mingw32-RA-on-linux bot is still having errors.

This reverts commit r301236.

LLVM — llvm/trunk/lib/Transforms/Utils LoopUnroll.cpp, llvm/trunk/test/Transforms/LoopUnroll not-rotated.ll

[LoopUnroll] Don't try to unroll non canonical loops.

The current Loop Unroll implementation works with loops having a
single latch that contains a conditional branch to a block outside
the loop (the other successor is, by defition of latch, the header).
If this precondition doesn't hold, avoid unrolling the loop as
the code is not ready to handle such circumstances.

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