[ms-inline asm] Use the new GetMCInstOperandNum() interface in the front-end.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163126 91177308-0d34-0410-b5e6-96231b3b80d8
Fix 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163142 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-inline asm] Fix an illegal index and an 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163143 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-inline asm] The MCInstrDesc only tracks register definitions.  For now,
assume that if the 1st operands is an expression and the instruction mayStore,
then it is a memory definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163144 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r163078 per chandlerc's request.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163145 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r163076 per chandlerc's request.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163146 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r163099 per chandlerc's request.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163147 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r163083 per chandlerc's request.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163149 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Don't use makeIntVal to create a floating-point value.

SimpleSValBuilder processes a couple trivial identities, including 'x - x'
and 'x ^ x' (both 0). However, the former could appear with arguments of
floating-point type, and we weren't checking for that. This started
triggering an assert with r163069, which checks that a constant value is
actually going to be used as an integer or pointer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163159 91177308-0d34-0410-b5e6-96231b3b80d8
Minor cleanup to improve code readability.  No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163161 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-inline asm] Remove the Inline Asm Non-Standard Dialect attribute.  This
implementation does not co-exist well with how the sideeffect and alignstack
attributes are handled.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163173 91177308-0d34-0410-b5e6-96231b3b80d8
Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163176 91177308-0d34-0410-b5e6-96231b3b80d8
Add -fioc-{signed,shifts,strict-shifts} to check for undefined int behavior.

Requires corresponding compiler-rt change, IOC checks emit calls to
runtime functions to print diagnostic information about the checked behavior.
[ioc] Add option to abort on error, instead of resuming execution.

Note that we presently don't allow the runtime function to define
the value of the computation, but by default do allow the execution
to continue.

This change adds a flag that lets users specify that they want
the program to abort should a check fail.  This might simply
be preferred functionality, but hopefully also helps performance.

Includes lit test.
[ioc] Add -fioc-unsigned for catching and reporting unsigned int overflows.
[ioc] Add -fioc-{implicit,explicit}-conversion flags and tests.

These flags enable checking for implicit/explicit lossy casts.
Emit llvm.expect calls for undefined behavior conditions, possible perf gain.

Update lit tests broken by this change.