- Jun 26, 2012
-
-
Andrew Trick authored
llvm-svn: 159182
-
Evan Cheng authored
Make sure type is not extended or untyped before create a constant of the type. No test case. Found by inspection. llvm-svn: 159179
-
Eli Friedman authored
Make some ugly hacks for inline asm operands which name a specific register a bit more thorough. PR13196. llvm-svn: 159176
-
Nuno Lopes authored
revert my previous commit (r159173), since as Eli pointed out, it's perfectly ok to mark realloc as noalias llvm-svn: 159175
-
Nuno Lopes authored
do not set realloc() as NotAlias, since it can return the same pointer. This whole thing should be upgraded to use the MemoryBuiltin interface anyway.. llvm-svn: 159173
-
- Jun 25, 2012
-
-
Manman Ren authored
More condition codes are included when deciding whether to remove cmp after a sub instruction. Specifically, we extend from GE|LT|GT|LE to GE|LT|GT|LE|HS|LS|HI|LO|EQ|NE. If we have "sub a, b; cmp b, a; movhs", we should be able to replace with "sub a, b; movls". rdar: 11725965 llvm-svn: 159166
-
Dan Gohman authored
the call correctly even in the case where it is an invoke. This fixes rdar://11714057. llvm-svn: 159157
-
Jakob Stoklund Olesen authored
Verify that all paths from the entry block to a virtual register read pass through a def. Enable this check even when MRI->isSSA() is false. Verify that the live range of a virtual register is live out of all predecessor blocks, even for PHI-values. This requires that PHIElimination sometimes inserts IMPLICIT_DEF instruction in predecessor blocks. llvm-svn: 159150
-
Jakob Stoklund Olesen authored
Implicitly defined virtual registers can simply have the <undef> bit set on all uses, and copies can be turned into implicit defs recursively. Physical registers are a bit trickier. We handle the common case where a physreg def is used by a nearby instruction in the same basic block. For more complicated cases, just leave the IMPLICIT_DEF instruction in. llvm-svn: 159149
-
Nuno Lopes authored
- simplifycfg: invoke undef/null -> unreachable - instcombine: invoke new -> invoke expect(0, 0) (an arbitrary NOOP intrinsic; only done if the allocated memory is unused, of course) - verifier: allow invoke of intrinsics (to make the previous step work) llvm-svn: 159146
-
Nuno Lopes authored
llvm-svn: 159145
-
Meador Inge authored
Fix 'sys::IdentifyFileType' to work with big and little endian byte orderings when reading the ELF object file type. Initial patch by Stefan Hepp. llvm-svn: 159138
-
Rafael Espindola authored
hidden. Being linkonce_odr guarantees that it is available in every dso that needs it. Being a constant/function with unnamed_addr guarantees that the copies don't have to be merged. llvm-svn: 159136
-
Eli Bendersky authored
The name (and comment describing) of llvm::GetFirstDebuigLocInBasicBlock no longer represents what the function does. Therefore, the function is removed and its functionality is folded into the only place in the code-base where it was being used. llvm-svn: 159133
-
Craig Topper authored
Add SSE2 predicate to CVTPS2PD instructions. Doesn't matter much because there are no patterns in the instruction. llvm-svn: 159127
-
Craig Topper authored
Remove codegen only instruction in favor of one that has the same definition. Make some pattern operands more explicit about types. llvm-svn: 159126
-
Jakob Stoklund Olesen authored
When a PHI use is <undef>, don't emit a copy in the predecessor block, but insert an IMPLICIT_DEF instruction instead. This ensures that virtual register uses are always jointly dominated by defs, even if some of them are IMPLICIT_DEF. llvm-svn: 159121
-
Jakob Stoklund Olesen authored
When the source register to a 2-addr instruction is undefined, there is no need to attempt any transformations - simply replace the source register with the destination register. This also comes up when lowering IMPLICIT_DEF instructions - make sure the <undef> flag is moved to the new partial register def operand: %vreg8<def> = INSERT_SUBREG %vreg9<undef>, %vreg0<kill>, sub_16bit rewrite undef: %vreg8<def> = INSERT_SUBREG %vreg8<undef>, %vreg0<kill>, sub_16bit convert to: %vreg8:sub_16bit<def,read-undef> = COPY %vreg0<kill> llvm-svn: 159120
-
- Jun 24, 2012
-
-
Jakob Stoklund Olesen authored
The function live-out registers must be live at all function returns, and %RCX is only used by eh.return. When a function also has a normal return, only %RAX holds a return value. This fixes PR13188. llvm-svn: 159116
-
NAKAMURA Takumi authored
llvm-svn: 159112
-
Hal Finkel authored
These are used as the result of comparisons, and often handled differently from larger integer types. llvm-svn: 159111
-
Nick Lewycky authored
the safety check to look for the same type we're going to actually cast to. Fixes PR13180! llvm-svn: 159110
-
Craig Topper authored
llvm-svn: 159109
-
Craig Topper authored
llvm-svn: 159108
-
Craig Topper authored
llvm-svn: 159107
-
Craig Topper authored
llvm-svn: 159106
-
Craig Topper authored
llvm-svn: 159105
-
Nick Lewycky authored
llvm-svn: 159104
-
NAKAMURA Takumi authored
FYI, two arguments of strerror_s() is provided in C++ on msvc. llvm-svn: 159103
-
NAKAMURA Takumi authored
VMCore/CMakeLists.txt: [CMake][MSVC] Add "/Og-" to Function.cpp on msvc10. Otherwise, it took over 20 minutes to compile. FIXME: Suppressing optimizations to core libraries would not be good thing. llvm-svn: 159097
-
Nick Lewycky authored
llvm-svn: 159096
-
Pete Cooper authored
llvm-svn: 159094
-
Pete Cooper authored
llvm-svn: 159092
-
Craig Topper authored
llvm-svn: 159090
-
- Jun 23, 2012
-
-
Hal Finkel authored
llvm-svn: 159088
-
Craig Topper authored
Make CVTDQ2PS instruction use SSE2 predicate instead of SSE1. No functional change because there are no patterns in the instructions. Also fix a typo in a comment. llvm-svn: 159087
-
Craig Topper authored
Move CVTPD2DQ to use SSE2 predicate instead of SSE3. Move DQ2PD and PD2DQ to the SSE2 section of the file. llvm-svn: 159086
-
Benjamin Kramer authored
llvm-svn: 159082
-
Hans Wennborg authored
Remove temporary GlobalVariable constructors now that Clang has been updated (r159078). llvm-svn: 159079
-
Hans Wennborg authored
This allows the user/front-end to specify a model that is better than what LLVM would choose by default. For example, a variable might be declared as @x = thread_local(initialexec) global i32 42 if it will not be used in a shared library that is dlopen'ed. If the specified model isn't supported by the target, or if LLVM can make a better choice, a different model may be used. llvm-svn: 159077
-