- Apr 07, 2008
-
-
Dan Gohman authored
review feedback from Chris quite a while ago. No functionality change. llvm-svn: 49348
-
Owen Anderson authored
in both time and memory savings for GVN. For example, one testcase went from 10.5s to 6s with this patch. llvm-svn: 49345
-
Daniel Berlin authored
llvm-svn: 49339
-
Duncan Sands authored
llvm-svn: 49338
-
Duncan Sands authored
needs to be fixed here - a previous commit made sure that intrinsics always get the right attributes. So remove no-longer needed code, and while there use Intrinsic::getDeclaration rather than getOrInsertFunction. llvm-svn: 49337
-
Duncan Sands authored
intrinsics. Fix up the argument type (should be i8*, was an array*). llvm-svn: 49336
-
Duncan Sands authored
right parameter attributes no matter how they are obtained. llvm-svn: 49335
-
Roman Levenstein authored
by Dan Gohman is fixed. llvm-svn: 49330
-
Owen Anderson authored
allocations, which GVN can't optimize anyways. llvm-svn: 49329
-
Dale Johannesen authored
nounwind. When such calls are inlined into something else that is invoked, they were getting changed to invokes, which is badness. llvm-svn: 49299
-
Gabor Greif authored
llvm-svn: 49293
-
- Apr 06, 2008
-
-
Chris Lattner authored
llvm-svn: 49285
-
Chris Lattner authored
llvm-svn: 49284
-
Chris Lattner authored
llvm-svn: 49283
-
Gabor Greif authored
llvm-svn: 49282
-
Torok Edwin authored
If it cannot be expanded, it will keep the old behaviour and try to shrink the constant. Part of enhancement for PR2191. llvm-svn: 49280
-
Gabor Greif authored
Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
-
- Apr 05, 2008
-
-
Chris Lattner authored
llvm-svn: 49248
-
Evan Cheng authored
2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. llvm-svn: 49246
-
Evan Cheng authored
llvm-svn: 49244
-
Dale Johannesen authored
before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C llvm-svn: 49243
-
- Apr 04, 2008
-
-
Torok Edwin authored
llvm-svn: 49218
-
Chris Lattner authored
tools. This is currently only enabled on the mac, but could easily be supported by other hosts that are interested. llvm-svn: 49207
-
Chris Lattner authored
llvm-svn: 49206
-
Evan Cheng authored
llvm-svn: 49198
-
Evan Cheng authored
llvm-svn: 49197
-
- Apr 03, 2008
-
-
Andrew Lenharth authored
if some functions don't have debug info, we were outputing the same label at the start of each of those functions. This makes assemblers unhappy llvm-svn: 49176
-
Evan Cheng authored
- Be smarter about coalescing copies from implicit_def. llvm-svn: 49168
-
Evan Cheng authored
llvm-svn: 49167
-
Evan Cheng authored
- Eliminate an implicit_def when it's being spilled. llvm-svn: 49166
-
Evan Cheng authored
- Be (slightly) smarter about where to place the copies. llvm-svn: 49165
-
Evan Cheng authored
There is no point in creating a long live range defined by an implicit_def. Scheduler now duplicates implicit_def instruction for each of its uses. Therefore, if an implicit_def node has multiple uses, it will become a number of very short live ranges, rather than a long one. This will make coalescer's job easier. llvm-svn: 49164
-
Ted Kremenek authored
This method allows one to create a directory, and optionally create all parent directories that do not exist. The original implementation would require that *all* directories along a path are writable by the user, including directories that already exist. For example, suppose we wanted to create the directory "/tmp/foo/bar", and the directory "/tmp" already exists, but not "/tmp/foo". Since "/tmp" is writable by all users, the original implementation would work, and create "/tmp/foo", followed by "/tmp/bar". A problem occurred, however if one wanted to created the directory "/Users/myuser/bar" (or equivalently "/home/myuser/bar"), and "/Users/myuser" already existed and is writable by the current user. The directory "/User/myuser" is writable by the user, but "/User" is not. The original implementation of createDirectoryOnDisk would return with failure since "/User" is not writable, even though "/User/mysuser" is writable. The new implementation works by recursively creating parents as needed, and thus doesn't need to check the permissions on every directory in a path. llvm-svn: 49162
-
Evan Cheng authored
llvm-svn: 49158
-
Evan Cheng authored
Fix x86-64 encoding bug. REX prefix must always follow 0x0F prefix. For example, extractps in 64bit mode: 66 REX 0F 3A 17, not 66 0F 3A REX 17. llvm-svn: 49157
-
Evan Cheng authored
llvm-svn: 49156
-
Evan Cheng authored
llvm-svn: 49129
-
Evan Cheng authored
llvm-svn: 49124
-
Dan Gohman authored
it causes compile errors. llvm-svn: 49122
-
- Apr 02, 2008
-
-
Dale Johannesen authored
StripSymbols when EH is on. llvm-svn: 49110
-