- Jun 29, 2013
-
-
David Majnemer authored
Changing the sign when comparing the base pointer would introduce all sorts of unexpected things like: %gep.i = getelementptr inbounds [1 x i8]* %a, i32 0, i32 0 %gep2.i = getelementptr inbounds [1 x i8]* %b, i32 0, i32 0 %cmp.i = icmp ult i8* %gep.i, %gep2.i %cmp.i1 = icmp ult [1 x i8]* %a, %b %cmp = icmp ne i1 %cmp.i, %cmp.i1 ret i1 %cmp into: %cmp.i = icmp slt [1 x i8]* %a, %b %cmp.i1 = icmp ult [1 x i8]* %a, %b %cmp = xor i1 %cmp.i, %cmp.i1 ret i1 %cmp By preserving the original sign, we now get: ret i1 false This fixes PR16483. llvm-svn: 185259
-
David Majnemer authored
llvm-svn: 185258
-
David Majnemer authored
Real world code sometimes has the denominator of a 'udiv' be a 'select'. LLVM can handle such cases but only when the 'select' operands are symmetric in structure (both select operands are a constant power of two or a left shift, etc.). This falls apart if we are dealt a 'udiv' where the code is not symetric or if the select operands lead us to more select instructions. Instead, we should treat the LHS and each select operand as a distinct divide operation and try to optimize them independently. If we can to simplify each operation, then we can replace the 'udiv' with, say, a 'lshr' that has a new select with a bunch of new operands for the select. llvm-svn: 185257
-
Timur Iskhodzhanov authored
llvm-svn: 185256
-
Hongbin Zheng authored
The attribute in the file allows git to perform End-of-Line normalization (CRLF to LF). llvm-svn: 185255
-
Hongbin Zheng authored
llvm-svn: 185254
-
Hongbin Zheng authored
1. Do not allow creating new memory access record in the InstructionToAccess map on the fly in function getAccessFor. 2. Do not allow user to modify the memory accesses returned by getAccessFor during the code generation process. llvm-svn: 185253
-
Hongbin Zheng authored
llvm-svn: 185252
-
Nadav Rotem authored
llvm-svn: 185251
-
Nadav Rotem authored
llvm-svn: 185250
-
Manman Ren authored
No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. llvm-svn: 185249
-
Rui Ueyama authored
function is not used in release build. llvm-svn: 185248
-
Rui Ueyama authored
llvm-svn: 185247
-
Enrico Granata authored
llvm-svn: 185246
-
Greg Clayton authored
llvm-svn: 185245
-
-
Richard Trieu authored
llvm-svn: 185243
-
David Majnemer authored
We may, after other optimizations, find ourselves with IR that looks like: %shl = shl i32 1, %y %cmp = icmp ult i32 %shl, 32 Instead, we should just compare the shift count: %cmp = icmp ult i32 %y, 5 llvm-svn: 185242
-
Preston Briggs authored
llvm-svn: 185241
-
rdar://problem/14309010Enrico Granata authored
OS Plugins' __init__ method takes two arguments: (self,process) I was erroneously passing the session_dict as well as part of my PyCallable changes and that caused plugins to fail to work llvm-svn: 185240
-
Matt Arsenault authored
Thename says it's an i32*, but it was actually creating another i8* llvm-svn: 185239
-
Matt Arsenault authored
llvm-svn: 185238
-
Jakob Stoklund Olesen authored
llvm-svn: 185237
-
Jakob Stoklund Olesen authored
Allow block frequencies to exceed 32 bits by using the new BlockFrequency division function. llvm-svn: 185236
-
Hal Finkel authored
This fixes PR16418, which reports that a function calling __builtin_unwind_init() asserts. The cause is that this generates a spill/restore for VRSAVE, and we support that only on Darwin (because VRSAVE is only really used on Darwin). The test case checks only that we don't crash. We can add correctness checks once someone verifies what behavior the function is supposed to have. llvm-svn: 185235
-
Richard Smith authored
llvm-svn: 185234
-
Jim Ingham authored
llvm-svn: 185233
-
Daniel Malea authored
- should resolve windows buildbot failure llvm-svn: 185232
-
Eli Friedman authored
llvm-svn: 185231
-
Nadav Rotem authored
To support this we have to insert 'extractelement' instructions to pick the right lane. We had this functionality before but I removed it when we moved to the multi-block design because it was too complicated. llvm-svn: 185230
-
Richard Smith authored
across scopes. When we declare an extern "C" name that is not a redeclaration of an entity in the same scope, check whether it redeclares some extern "C" entity from another scope, and if not, check whether it conflicts with a (non-extern-"C") entity in the translation unit. When we declare a name in the translation unit that is not a redeclaration, check whether it conflicts with any extern "C" entities (possibly from other scopes). llvm-svn: 185229
-
- Jun 28, 2013
-
-
Richard Trieu authored
Change assert("text") to assert(0 && "text"). The first case is a const char * to bool conversion, which always evaluates to true, never triggering the assert. The second case will always trigger the assert. llvm-svn: 185227
-
Jakob Stoklund Olesen authored
llvm-svn: 185226
-
Daniel Malea authored
- mistakenly used get_current_dir() linux function - replaced with getcwd/_getcwd as appropriate for current platform llvm-svn: 185225
-
Sean Callanan authored
been suitable for preparing a single IR function for operation in the target. However, using blocks and lambdas creates other IR functions that also need to be processed. I have audited IRForTarget to make it process multiple functions. Where IRForTarget would add new instructions at the beginning of the main expression function, it now adds them on-demand in the function where they are needed. This is enabled by a system of FunctionValueCaches, which invoke a lambda to create or derive the values as needed, or report the result of that lambda if it has already been called for the given function. <rdar://problem/14180236> llvm-svn: 185224
-
-
Andrew Kaylor authored
Revising the MCJIT ObjectCache interface to allow subclasses to avoid retaining references to returned objects llvm-svn: 185221
-
David Blaikie authored
llvm-svn: 185219
-
Jakob Stoklund Olesen authored
Hopefully, this fixes the PPC64 buildbots. llvm-svn: 185218
-
Greg Clayton authored
Default parameters are evil and should not be used. Case and point this checkin that fixes implicit conversions that were happening. llvm-svn: 185217
-