Changes from Git (git http://labmaster3.local/git/llvm-project.git)


  1. clang/Basic: ContentCache::InvalidFlag => ContentCache::IsBufferInvalid, NFC (details)
  2. Improve file doesnt exist error with -fbasic-block-sections= (details)
  3. Don't permit array bound constant folding in OpenCL. (details)
  4. [HazardRec] Allow inserting multiple wait-states simultaneously (details)
Commit 1d78e2101ab75f01615a45467c44da7181cccedb by Duncan P. N. Exon Smith
clang/Basic: ContentCache::InvalidFlag => ContentCache::IsBufferInvalid, NFC

Move a flag out of the `MemoryBuffer*` to unblock changing it to a
`unique_ptr`. There are plenty of bits available in the bitfield below.

Differential Revision:
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/include/clang/Basic/SourceManager.h
Commit f88785460ecf40a9176f58637d38fb785eb91ac4 by tmsriram
Improve file doesnt exist error with -fbasic-block-sections=

With -fbasicblock-sections=, let the front-end handle the case where the file
doesnt exist. The driver only checks if the option syntax is right.

Differential Revision:
The file was modifiedclang/test/CodeGen/basic-block-sections.c
The file was modifiedclang/test/Driver/fbasic-block-sections.c
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 6781fee085058913444e0c5937da9c0e7e928db5 by richard
Don't permit array bound constant folding in OpenCL.

Permitting non-standards-driven "do the best you can" constant-folding
of array bounds is permitted solely as a GNU compatibility feature. We
should not be doing it in any language mode that is attempting to be

From it appears the intent here was to
permit `__constant int` globals to be used in array bounds, but the
change in that patch only added half of the functionality necessary to
support that in the constant evaluator. This patch adds the other half
of the functionality and turns off constant folding for array bounds in

I couldn't find any spec justification for accepting the kinds of cases
that D20090 accepts, so a reference to where in the OpenCL specification
this is permitted would be useful.

Note that this change also affects the code generation in one test:
because after 'const int n = 0' we now treat 'n' as a constant
expression with value 0, it's now a null pointer, so '(local int *)n'
forms a null pointer rather than a zero pointer.

Reviewed By: Anastasia

Differential Revision:
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/test/SemaOpenCL/
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/test/CodeGenOpenCL/
Commit 37d907899f498c6944fc234ed2742b9923b88952 by Austin.Kerbow
[HazardRec] Allow inserting multiple wait-states simultaneously

If a target can encode multiple wait-states into a noop allow emitting such
instructions directly.

Reviewed By: rampitec, dmgreen

Differential Revision:
The file was modifiedllvm/test/CodeGen/AMDGPU/frem.ll
The file was modifiedllvm/lib/CodeGen/PostRAHazardRecognizer.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/vmem-vcc-hazard.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/mai-hazards.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.h
The file was modifiedllvm/test/CodeGen/AMDGPU/inserted-wait-states.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/hazard-hidden-bundle.mir
The file was modifiedllvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
The file was modifiedllvm/test/CodeGen/AMDGPU/
The file was modifiedllvm/test/CodeGen/AMDGPU/fp-atomic-to-s_denormmode.mir
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp