- Nov 01, 2012
-
-
Chandler Carruth authored
getIntPtrType support for multiple address spaces via a pointer type, and also introduced a crasher bug in the constant folder reported in PR14233. These commits also contained several problems that should really be addressed before they are re-committed. I have avoided reverting various cleanups to the DataLayout APIs that are reasonable to have moving forward in order to reduce the amount of churn, and minimize the number of commits that were reverted. I've also manually updated merge conflicts and manually arranged for the getIntPtrType function to stay in DataLayout and to be defined in a plausible way after this revert. Thanks to Duncan for working through this exact strategy with me, and Nick Lewycky for tracking down the really annoying crasher this triggered. (Test case to follow in its own commit.) After discussing with Duncan extensively, and based on a note from Micah, I'm going to continue to back out some more of the more problematic patches in this series in order to ensure we go into the LLVM 3.2 branch with a reasonable story here. I'll send a note to llvmdev explaining what's going on and why. Summary of reverted revisions: r166634: Fix a compiler warning with an unused variable. r166607: Add some cleanup to the DataLayout changes requested by Chandler. r166596: Revert "Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! r166591: Delete a directory that wasn't supposed to be checked in yet. r166578: Add in support for getIntPtrType to get the pointer type based on the address space. llvm-svn: 167221
-
Richard Smith authored
We want the diagnostic, and if the load is optimized away, we still want to trap it. Stop checking non-default address spaces; that doesn't work in general. llvm-svn: 167219
-
Hal Finkel authored
When target costs are available, use them to account for the costs of shuffles on internal edges of the DAG of candidate pairs. Because the shuffle costs here are currently for only the internal edges, the current target cost model is trivial, and the chain depth requirement is still in place, I don't yet have an easy test case. Nevertheless, by looking at the debug output, it does seem to do the right think to the effective "size" of each DAG of candidate pairs. llvm-svn: 167217
-
Gregory Szorc authored
Patch provided by Matthias Kleine <matthias_kleine@gmx.de> llvm-svn: 167216
-
Tobias Grosser authored
The detection of values that need to be copied in to the generated OpenMP subfunction also detects the array base addresses needed in the SCoP. Hence, it is not necessary to unconditionally copy all the base addresses to the generated function. Test cases are modified to reflect this change. Arrays which are global variables do not occur in the struct passed to the subfunction anymore. A test case for base address copy-in is added in copy_in_array.{c,ll}. Committed with slight modifications Contributed by: Armin Groesslinger <armin.groesslinger@uni-passau.de> llvm-svn: 167215
-
Tobias Grosser authored
In addition to the arrays and clast variables a SCoP statement may also refer to values defined before the SCoP or to function arguments. Detect these values and add them to the set of values passed to the function generated for OpenMP parallel execution of a clast. Committed with additional test cases and some refactoring. Contributed by: Armin Groesslinger <armin.groesslinger@uni-passau.de> llvm-svn: 167214
-
Tobias Grosser authored
When generating OpenMP or GPGPU code the original ValueMap and ClastVars must be kept. We already recovered the original ClastVars by reverting the changes, but we did not keep the content of the ValueMap. This patch keeps now an explicit copy of both maps and restores them after generating OpenMP or GPGPU code. This is an adapted version of a patch contributed by: Armin Groesslinger <armin.groesslinger@uni-passau.de> llvm-svn: 167213
-
Richard Smith authored
llvm-svn: 167211
-
Richard Smith authored
and apparently unused (and since they are untested, they're presumably also broken). llvm-svn: 167210
-
Michael Liao authored
llvm-svn: 167209
-
NAKAMURA Takumi authored
llvm-svn: 167208
-
NAKAMURA Takumi authored
llvm-svn: 167207
-
Jason Molenda authored
launch process (null)" because we changed argv while doing argument parsing. llvm-svn: 167202
-
Argyrios Kyrtzidis authored
the receiver of an ObjC message expression. rdar://12578643 llvm-svn: 167201
-
Owen Anderson authored
llvm-svn: 167200
-
NAKAMURA Takumi authored
llvm-svn: 167199
-
Jakob Stoklund Olesen authored
The static compose() function in RegisterCoalescer was doing the exact same thing. llvm-svn: 167198
-
Jim Ingham authored
There seems to be some odd corner case where we shut down the ProcessGDBRemote, but we haven't managed to shut down the async thread. That causes the ProcessGDBRemote::AsyncThread to crash when it wakes up. So I changed StartAsyncThread and StopAsyncThread to be callable multiple times (only the first one does anything) so that we can just shut it down unequivocally in the ProcessGDBRemote destructor. <rdar://problem/12602981> llvm-svn: 167197
-
Jakub Staszak authored
llvm-svn: 167196
-
Jordan Rose authored
Specifically, if adding a constraint makes the current system infeasible, assume the constraint is false, instead of attempting to add its negation. In +Asserts builds we will still assert that at least one state is feasible. Patch by Ryan Govostes! llvm-svn: 167195
-
Jim Ingham authored
Switch from using KERN_PROCARGS2 to get the path to the executed process to proc_pidpath. The former was flakey, and the whole point of libproc is to protect us from potential flakiness at that level... <rdar://problem/12594781> llvm-svn: 167194
-
Argyrios Kyrtzidis authored
in the test output directory. llvm-svn: 167193
-
Andrew Kaylor authored
Patch by Ashok Thirumurthi llvm-svn: 167192
-
Michael J. Spencer authored
llvm-svn: 167191
-
Jakob Stoklund Olesen authored
Explicitly allow composition of null sub-register indices, and handle that common case in an inlinable stub. Use a compressed table implementation instead of the previous nested switches which generated pretty bad code. llvm-svn: 167190
-
Jordan Rose authored
llvm-svn: 167189
-
NAKAMURA Takumi authored
llvm-svn: 167188
-
Jordan Rose authored
No functionality change. llvm-svn: 167187
-
Jordan Rose authored
(and the same for isFalse) No functionality change. llvm-svn: 167186
-
Andrew Kaylor authored
llvm-svn: 167185
-
Eli Friedman authored
llvm-svn: 167184
-
Greg Clayton authored
llvm-svn: 167183
-
Greg Clayton authored
llvm-svn: 167182
-
Jim Grosbach authored
Nothing fancy, just a simple demonstration parser. llvm-svn: 167181
-
Shuxin Yang authored
The adc/sbb optimization is to able to convert following expression into a single adc/sbb instruction: (ult) ... = x + 1 // where the ult is unsigned-less-than comparison (ult) ... = x - 1 This change is to flip the "x >u y" (i.e. ugt comparison) in order to expose the adc/sbb opportunity. llvm-svn: 167180
-
Filipe Cabecinhas authored
llvm-svn: 167179
-
- Oct 31, 2012
-
-
Anna Zaks authored
Thanks Ted. llvm-svn: 167176
-
Greg Clayton authored
llvm-svn: 167175
-
Nadav Rotem authored
llvm-svn: 167174
-
Chad Rosier authored
matching works correctly. Part of rdar://12329974 llvm-svn: 167173
-