Displaying 1 50 of 236,723 commits (0.024s)

LLVM — lldb/branches/release_39/scripts/Xcode build-llvm.py

Update scripts/Xcode/build-llvm.py to use llvm/clang 3.9 branch

LLVM — cfe/branches/release_39/include/clang/Basic BuiltinsX86.def, cfe/branches/release_39/lib/Headers emmintrin.h avxintrin.h

Merging r276102:
------------------------------------------------------------------------
r276102 | rksimon | 2016-07-20 03:18:01 -0700 (Wed, 20 Jul 2016) | 11 lines

[X86][SSE] Reimplement SSE fp2si conversion intrinsics instead of using generic IR

D20859 and D20860 attempted to replace the SSE (V)CVTTPS2DQ and VCVTTPD2DQ truncating 
conversions with generic IR instead.

It turns out that the behaviour of these intrinsics is different enough from generic IR 
that this will cause problems, INF/NAN/out of range values are guaranteed to result in a 
0x80000000 value - which plays havoc with constant folding which converts them to either 
zero or UNDEF. This is also an issue with the scalar implementations (which were already 
generic IR and what I was trying to match).

This patch changes both scalar and packed versions back to using x86-specific builtins.

It also deals with the other scalar conversion cases that are runtime rounding mode 
dependent and can have similar issues with constant folding.

Differential Revision: https://reviews.llvm.org/D22105
------------------------------------------------------------------------

LLVM — llvm/branches/release_39/include/llvm/IR IntrinsicsX86.td, llvm/branches/release_39/lib/Analysis ConstantFolding.cpp

Merging r275981 and r276740:
------------------------------------------------------------------------
r275981 | rksimon | 2016-07-19 08:07:43 -0700 (Tue, 19 Jul 2016) | 13 lines

[X86][SSE] Reimplement SSE fp2si conversion intrinsics instead of using generic IR

D20859 and D20860 attempted to replace the SSE (V)CVTTPS2DQ and VCVTTPD2DQ truncating 
conversions with generic IR instead.

It turns out that the behaviour of these intrinsics is different enough from generic IR 
that this will cause problems, INF/NAN/out of range values are guaranteed to result in a 
0x80000000 value - which plays havoc with constant folding which converts them to either 
zero or UNDEF. This is also an issue with the scalar implementations (which were already 
generic IR and what I was trying to match).

This patch changes both scalar and packed versions back to using x86-specific builtins.

It also deals with the other scalar conversion cases that are runtime rounding mode 
dependent and can have similar issues with constant folding.

A companion clang patch is at D22105

Differential Revision: https://reviews.llvm.org/D22106
------------------------------------------------------------------------


    [9 lines not shown]

LLVM — llvm/trunk/lib/Target/Mips MipsFastISel.cpp, llvm/trunk/test/CodeGen/Mips/Fast-ISel simplestorefp1.ll loadstoreconv.ll

Revert r276982 and r276984: [mips][fastisel] Handle 0-4 arguments without SelectionDAG

It seems that the stack offset in callabi.ll varies between machines. I'll look
into it.

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

[OpenMP] Change name of variable in mappble expression.

This attempts to fix a failure in Windows bots pottentially related with a reserved 
keyword.

LLVM — llvm/trunk/lib/Target/X86 X86ISelLowering.cpp X86InstrFMA.td, llvm/trunk/test/CodeGen/X86 fma-do-not-commute.ll

[X86] Remove CustomInserter for FMA3 instructions. Looks like since we got full commuting 
support for FMAs after this was added, the coalescer can now get this right on its own.

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

LLVM — llvm/branches/release_39/lib/Analysis InstructionSimplify.cpp, llvm/branches/release_39/lib/Transforms/InstCombine InstCombineSelect.cpp

Back-port r276209:
------------------------------------------------------------------------
r276209 | spatel | 2016-07-20 16:40:01 -0700 (Wed, 20 Jul 2016) | 4 lines

[InstSimplify][InstCombine] don't crash when folding vector selects of icmp

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

------------------------------------------------------------------------

LLVM — cfe/branches/release_39/lib/CodeGen CGStmt.cpp, cfe/branches/release_39/test/CodeGenCXX switch-case-folding-2.cpp

Merging r276350:
------------------------------------------------------------------------
r276350 | epilk | 2016-07-21 15:31:40 -0700 (Thu, 21 Jul 2016) | 3 lines

[CodeGen] Fix a crash when constant folding switch statement

Differential revision: https://reviews.llvm.org/D22542
------------------------------------------------------------------------

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

[mips] Reword debug message as should have been done before committing r276982

LLVM — cfe/trunk/test/Driver offloading-interoperability.c

[OpenMP] Fix link command pattern in offloading interoperability test.

It was causing a few bots to fail.

LLVM — llvm/trunk/lib/Target/Mips MipsFastISel.cpp, llvm/trunk/test/CodeGen/Mips/Fast-ISel simplestorefp1.ll loadstoreconv.ll

[mips][fastisel] Handle 0-4 arguments without SelectionDAG.

Summary:
Implements fastLowerArguments() to avoid the need to fall back on
SelectionDAG for 0-4 argument functions that don't do tricky things like
passing double in a pair of i32's.

This allows us to move all except one test to -fast-isel-abort=3. The
remaining one has function prototypes of the form 'i32 (i32, double, double)'
which requires floats to be passed in GPR's.

Reviewers: sdardis

Subscribers: dsanders, llvm-commits, sdardis

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

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

[OpenMP] Do not use default argument in lambda from mappable expressions handlers.

Windows bots were complaining about that.

LLVM — llvm/trunk/lib/Target/AMDGPU SIRegisterInfo.cpp SIInstrInfo.cpp

AMDGPU/SI: Don't use reserved VGPRs for SGPR spilling

Summary:
We were using reserved VGPRs for SGPR spilling and this was causing
some programs with a workgroup size of 1024 to use more than 64
registers, which is illegal.

Reviewers: arsenm, mareko, nhaehnle

Subscribers: nhaehnle, arsenm, llvm-commits, kzhuravl

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

LLVM — cfe/trunk/lib/Driver Tools.cpp, cfe/trunk/test/Driver offloading-interoperability.c

[OpenMP][CUDA] Do not forward OpenMP flags for CUDA device actions.

Summary:
This patch prevents OpenMP flags from being forwarded to CUDA device commands. That was 
causing the CUDA frontend to attempt to emit OpenMP code which is not supported.

This fixes the bug reported in https://llvm.org/bugs/show_bug.cgi?id=28723.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, tra, ABataev

Subscribers: caomhin, cfe-commits

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

LLVM — cfe/trunk/include/clang/AST OpenMPClause.h, cfe/trunk/include/clang/Basic DiagnosticSemaKinds.td

[OpenMP] Code generation for the is_device_ptr clause

Summary: This patch adds support for the is_device_ptr clause. It expands SEMA to use the 
mappable expression logic that can only be tested with code generation in place and check 
conflicts with other data sharing related clauses using the mappable expressions 
infrastructure.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: caomhin, cfe-commits

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

LLVM — cfe/trunk/include/clang/AST OpenMPClause.h, cfe/trunk/lib/AST OpenMPClause.cpp

[OpenMP] Codegen for use_device_ptr clause.

Summary: This patch adds support for the use_device_ptr clause. It includes changes in 
SEMA that could not be tested without codegen, namely, the use of the first private logic 
and mappable expressions support.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: caomhin, cfe-commits

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

LLVM — lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime RenderScriptx86ABIFixups.cpp RenderScriptExpressionOpts.cpp

Add IR fixups for RenderScript ABI mismatch between ARMV7 frontend and x86 backend

Expression evaluation for function calls to certain public RenderScript
API functions in libRSCPURef can segfault.

`slang`,
the compiler frontend for RenderScript embeds an ARM specific triple in
IR that is shipped in the app, after generating IR that has some
assumptions that an ARM device is the target.
As the IR is then compiled on a device of unknown (at time the IR was
generated at least) architecture, when calling RenderScript API function
as part of debugger expressions, we have to perform a fixup pass that
removes those assumptions right before the module is sent to be
generated by the llvm backend.

This issue is caused by multiple problems with the ARMv7-specific
assumptions encoded in the LLVM IR. x86 large value returns use a hidden
first argument (mapping to llvm::Attribute::StructRet), which can't be
picked up by the JIT due to the mismatch between IR generated by the
slang frontend and llvm backend. This means that code generated by bcc
did not necessarily match the default SysV Linux/Android ABI used by the
LLDB JIT

- Original Authors: Luke Drummond (@ldrumm), Function declarations fixed by Aidan Dodds 
(@ADodds)

    [4 lines not shown]

LLVM — llvm/trunk/unittests/Support TargetParserTest.cpp

Removed unused variables

LLVM — llvm/trunk/unittests/Support TargetParserTest.cpp

Fix signed/unsigned warning.

LLVM — cfe/trunk/examples/AnnotateFunctions CMakeLists.txt, cfe/trunk/examples/PrintFunctionNames CMakeLists.txt

Reapply r276856 "Adjust Registry interface to not require plugins to export a registry"

This version has two fixes compared to the original:
 * In Registry.h the template static members are instantiated before they are
   used, as clang gives an error if you do it the other way around.
 * The use of the Registry template in clang-tidy is updated in the same way as
   has been done everywhere else.

Original commit message:

Currently the Registry class contains the vestiges of a previous attempt to
allow plugins to be used on Windows without using BUILD_SHARED_LIBS, where a
plugin would have its own copy of a registry and export it to be imported by
the tool that's loading the plugin. This only works if the plugin is entirely
self-contained with the only interface between the plugin and tool being the
registry, and in particular this conflicts with how IR pass plugins work.

This patch changes things so that instead the add_node function of the registry
is exported by the tool and then imported by the plugin, which solves this
problem and also means that instead of every plugin having to export every
registry they use instead LLVM only has to export the add_node functions. This
allows plugins that use a registry to work on Windows if
LLVM_EXPORT_SYMBOLS_FOR_PLUGINS is used.

LLVM — llvm/trunk/lib/Target/AMDGPU SILowerControlFlow.cpp SIInstructions.td, llvm/trunk/test/CodeGen/AMDGPU else.ll

AMDGPU: add execfix flag to SI_ELSE

Summary:
SI_ELSE is lowered into two parts:

s_or_saveexec_b64 dst, src (at the start of the basic block)

s_xor_b64 exec, exec, dst (at the end of the basic block)

The idea is that dst contains the exec mask of the preceding IF block. It can
happen that SIWholeQuadMode decides to switch from WQM to Exact mode inside
the basic block that contains SI_ELSE, in which case it introduces an instruction

s_and_b64 exec, exec, s[...]

which masks out bits that can correspond to both the IF and the ELSE paths.
So the resulting sequence must be:

s_or_savexec_b64 dst, src

s_and_b64 exec, exec, s[...] <-- added by SIWholeQuadMode
s_and_b64 dst, dst, exec <-- added by SILowerControlFlow

s_xor_b64 exec, exec, dst


    [32 lines not shown]

LLVM — llvm/trunk/lib/DebugInfo/CodeView ModuleSubstreamVisitor.cpp

[modules] Add missing includes.

LLVM — llvm/trunk/unittests/Support TargetParserTest.cpp

Remove two tests added in r276957.

These loop from 0 to AEK_XSCALE, which is currently defined as 0x80000000, and
thus the tests loop over the entire int range, which is unreasonable
and also too slow in debug builds.

LLVM — llvm/trunk/docs FAQ.rst LangRef.rst, llvm/trunk/docs/Proposals GitHubSubMod.rst

fix some typos in the doc

LLVM — llvm/trunk/unittests/Support TargetParserTest.cpp

R276957 broke bot clang-ppc64be-linux-multistage,try to fix it.

LLVM — lld/trunk/ELF LinkerScript.cpp, lld/trunk/test/ELF/linkerscript linkerscript-sort-constructors.s

[ELF] - Linkerscript: ignore SORT(CONSTRUCTORS)

Some scripts can contain SORT(CONSTRUCTORS) expression:
https://svnweb.freebsd.org/base/head/sys/conf/ldscript.amd64?revision=284870&view=markup#l152

for ELF it just a nop:
"When linking object file formats which do not support arbitrary sections, such as ECOFF 
and XCOFF, the linker will automatically recognize C++ global constructors and destructors 
by name. For these object file formats, the CONSTRUCTORS command tells the linker to place 
constructor information in the output section where the CONSTRUCTORS command appears. The 
CONSTRUCTORS command is ignored for other object file formats."
(http://www.sourceware.org/binutils/docs-2.10/ld_3.html)

So patch implements ignoring.

Differential revision: https://reviews.llvm.org/D22848

LLVM — llvm/trunk/lib/Analysis ConstantFolding.cpp, llvm/trunk/test/Transforms/InstSimplify pr28725.ll

[ConstantFolding] Don't bail on folding if ConstantFoldConstantExpression fails

When folding an expression, we run ConstantFoldConstantExpression on
each operand of that expression.
However, ConstantFoldConstantExpression can fail and retur nullptr.

Previously, we would bail on further refining the expression.
Instead, use the original operand and see if we can refine a later
operand.

LLVM — cfe/trunk/lib/Basic Targets.cpp, cfe/trunk/lib/Driver Tools.cpp

[AArch64] Using AArch64TargetParser in Clang.

This resubmit r270688 which broke some specific buildbots.That's because
there is incorrect indexing problem in the targetparser,and the problem is
fixed in r276957.

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

LLVM — llvm/trunk/include/llvm/Support TargetParser.h AArch64TargetParser.def, llvm/trunk/lib/Support TargetParser.cpp

Add unittests to {ARM | AArch64}TargetParser.

Add unittest to {ARM | AArch64}TargetParser,and by the way correct problems as below:
1.Correct a incorrect indexing problem in AArch64TargetParser. The architecture 
enumeration
 is shared across ARM and AArch64 in original implementation.But In the code,I just used 
the
 index which was offset by the ARM, and this would index into the array incorrectly. To 
make
 AArch64 has its own arch enum,or we will do a lot of slowly iterating.
2.Correct a spelling error. The parameter of llvm::AArch64::getArchExtName.
3.Correct a writing mistake, in llvm::ARM::parseArchISA.

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

LLVM — llvm/trunk/lib/CodeGen/AsmPrinter CodeViewDebug.cpp, llvm/trunk/test/DebugInfo/COFF pr28747.ll inlining-same-name.ll

[CodeView] Don't crash on functions without subprograms

A function may have instructions annotated with debug info without
having a subprogram.

This fixes PR28747.

LLVM — libcxx/trunk/include __string string_view

Add a bunch of noexcepts to char_traits and string_view.

LLVM — lldb/trunk/source/Plugins/DynamicLoader/Darwin-Kernel DynamicLoaderDarwinKernel.cpp

Add some logging to the kernel dynamicloader plugin when we fail to read
a kext binary from memory.
<rdar://problem/26158095>

LLVM — llvm/trunk/include/llvm/Transforms/IPO PassManagerBuilder.h, llvm/trunk/lib/Transforms/IPO PassManagerBuilder.cpp

Add EP_CGSCCOptimizerLate extension point to PassManagerBuilder

The EP_CGSCCOptimizerLate extension point allows adding CallGraphSCC
passes at the end of the main CallGraphSCC passes and before any
function simplification passes run by CGPassManager.

Patch by Gor Nishanov!

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

LLVM — llvm/trunk/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/trunk/test/Transforms/InstCombine cast.ll

[InstCombine] Handle failures from ConstantFoldConstantExpression

ConstantFoldConstantExpression returns null when folding fails.

This fixes PR28745.

LLVM — cfe/trunk/lib/StaticAnalyzer/Checkers CheckerDocumentation.cpp

[analyzer] Add check::BeginFunction to CheckerDocumentation checks. NFC.

This was an oversight from when I added BeginFunction support in r261293.

LLVM — cfe/trunk/test/CodeGen preserve-as-comments.c, cfe/trunk/test/Driver preserve-as-comments.c

Replace preserve-as-comments CodeGen test with driver test

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

AMDGPU: Turn dead checks into asserts

LLVM — llvm/trunk/lib/Target/AMDGPU SIISelLowering.cpp AMDGPUISelDAGToDAG.cpp

AMDGPU: Remove analyzeImmediate

This no longer uses the more complicated classification
of constants.

LLVM — lld/trunk/lib/ReaderWriter/MachO MachONormalizedFileToAtoms.cpp MachONormalizedFile.h

[lld][MachO] Remove some debugging output code that was mistakenly left in in
r276935.

LLVM — llvm/trunk/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/trunk/test/Transforms/LoopVectorize 2016-07-27-loop-vec.ll

Fix the assertion error in collectLoopUniforms caused by empty Worklist before expanding.

Contributed-by: David Callahan

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

LLVM — llvm/trunk/include/llvm/IR Function.h, llvm/trunk/lib/CodeGen WinEHPrepare.cpp

Don't invoke getName() from Function::isIntrinsic().

Summary:
getName() involves a hashtable lookup, so is expensive given how
frequently isIntrinsic() is called.  (In particular, many users cast to
IntrinsicInstr or one of its subclasses before calling
getIntrinsicID().)

This has an incidental functional change: Before, isIntrinsic() would
return true for any function whose name started with "llvm.", even if it
wasn't properly an intrinsic.  The new behavior seems more correct to
me, because it's strange to say that isIntrinsic() is true, but
getIntrinsicId() returns "not an intrinsic".

Some callers want the old behavior -- they want to know whether the
caller is a recognized intrinsic, or might be one in some other version
of LLVM.  For them, we added Function::hasLLVMReservedName(), which
checks whether the name starts with "llvm.".

This change is good for a 1.5% e2e speedup compiling a large Eigen
benchmark.

Reviewers: bogner

Subscribers: llvm-commits

    [2 lines not shown]

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

Add verifyAnalysis for LCSSA.

Summary:
LCSSAWrapperPass currently doesn't override verifyAnalysis method, so pass
manager doesn't verify LCSSA. This patch adds the method so that we start
verifying LCSSA between loop passes.

Reviewers: chandlerc, sanjoy, hfinkel

Subscribers: llvm-commits

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

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

[CFLAA] Add getModRefBehavior to CFLAnders.

This patch lets CFLAnders respond to mod-ref queries. It also includes
a small bugfix to CFLSteens.

Patch by Jia Chen.

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

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

[LSV] Use Instruction*s rather than Value*s where possible.

Summary:
Given the crash in D22878, this patch converts the load/store vectorizer
to use explicit Instruction*s wherever possible.  This is an overall
simplification and should be an improvement in safety, as we have fewer
naked cast<>s, and now where we use Value*, we really mean something
different from Instruction*.

This patch also gets rid of some cast<>s around Value*s returned by
Builder.  Given that Builder constant-folds everything, we can't assume
much about what we get out of it.

One downside of this patch is that we have to copy our chain before
calling propagateMetadata.  But I don't think this is a big deal, as our
chains are very small (usually 2 or 4 elems).

Reviewers: asbirlea

Subscribers: mzolotukhin, llvm-commits, arsenm

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

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

Retry: [Driver] Compute effective target triples once per job (NFCI)

Compute an effective triple once per job. Cache the triple in the
prevailing ToolChain for the duration of the job.

Clients which need effective triples now look them up in the ToolChain.
This eliminates wasteful re-computation of effective triples (e.g in
getARMFloatABI()).

While we're at it, delete MachO::ComputeEffectiveClangTriple. It was a
no-op override.

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

LLVM — cfe/trunk/docs ReleaseNotes.rst, cfe/trunk/include/clang/Driver ToolChain.h SanitizerArgs.h

Revert "[Driver] Compute effective target triples once per job (NFCI)"

This reverts commit r275895 in order to address some post-commit review
feedback from Eric Christopher (see: the list thread for r275895).

LLVM — lld/trunk/lib/ReaderWriter/MachO MachONormalizedFileToAtoms.cpp DebugInfo.h, lld/trunk/test/mach-o debug-syms.yaml

[lld][MachO] Re-apply r276921 with fix - initialize strings for debug string
copies.

LLVM — cfe/trunk/lib/CodeGen CGOpenMPRuntime.cpp, cfe/trunk/test/OpenMP target_map_codegen.cpp

[OpenMP] Add support to map member expressions with references to pointers.

Summary: This patch add support to map pointers through references in class members. 
Although a reference does not have storage that a user can access, it still has to be 
mapped in order to get the deep copy right and the dereferencing code work properly.

Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev

Subscribers: caomhin, cfe-commits

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

LLVM — cfe/trunk/lib/CodeGen CGOpenMPRuntime.cpp CGStmtOpenMP.cpp, cfe/trunk/test/OpenMP target_map_codegen.cpp

[OpenMP] Add support for mapping array sections through pointer references.

Summary:
This patch fixes a bug in the map of array sections whose base is a reference to a 
pointer. The existing mapping support was not prepared to deal with it, causing the 
compiler to crash.

Mapping a reference to a pointer enjoys the same characteristics of a regular pointer, 
i.e., it is passed by value. Therefore, the reference has to be materialized in the target 
region.

Reviewers: hfinkel, carlo.bertolli, kkwli0, ABataev

Subscribers: caomhin, cfe-commits

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

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

Basic/Targets.cpp: Reformat aarch64 CPU list.

Having 1 entry per line and an alphabetical order is clearer and reduces
the risk of invalid merges.
Delta File
+11 -8 cfe/trunk/lib/Basic/Targets.cpp
+11 -8 1 file