Evan Cheng [Sun, 18 Oct 2009 18:16:27 +0000 (18:16 +0000)]
-Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed
stack slots and giving them different PseudoSourceValue's did not fix the
problem of post-alloc scheduling miscompiling llvm itself.
- Apply Dan's conservative workaround by assuming any non fixed stack slots can
alias other memory locations. This means a load from spill slot #1 cannot
move above a store of spill slot #2.
- Enable post-alloc scheduling for x86 at optimization leverl Default and above.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 18 Oct 2009 06:27:36 +0000 (06:27 +0000)]
Only fixed stack objects and spill slots should be get FixedStack PseudoSourceValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84411
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:27:44 +0000 (05:27 +0000)]
remove some nonascii weird stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84410
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:20:17 +0000 (05:20 +0000)]
remove a now-pointless regtest
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84409
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:09:15 +0000 (05:09 +0000)]
add some fixme's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84408
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:08:07 +0000 (05:08 +0000)]
punctuate properly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84407
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:03:41 +0000 (05:03 +0000)]
remove testcase for dead pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84406
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:03:00 +0000 (05:03 +0000)]
fix test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84405
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 05:02:09 +0000 (05:02 +0000)]
remove the IndMemRemPass, which only made sense for when malloc/free were intrinsic
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84404
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:58:34 +0000 (04:58 +0000)]
fix the other issue with ID's, hopefully really fixing the linux build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84403
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:55:26 +0000 (04:55 +0000)]
tighten up test3, add test3a for the converse
transform, which isn't happening yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84402
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:50:18 +0000 (04:50 +0000)]
tighten test2, add a test that it doesn't get transformed in the invalid edge case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84401
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 18 Oct 2009 04:41:36 +0000 (04:41 +0000)]
Merge tests into modref.ll. Also add a test for r84174 at Chris' behest!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:27:14 +0000 (04:27 +0000)]
fix some problems with ID definitions, which will hopefully fix the build bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:10:40 +0000 (04:10 +0000)]
add function passes for printing various dominator datastructures
accessible through opt. Patch by Tobias Grosser!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84397
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:09:11 +0000 (04:09 +0000)]
make DOTGraphTraits public, patch by Tobias Grosser!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84396
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 18 Oct 2009 04:05:53 +0000 (04:05 +0000)]
add nodes_begin/end/iterator for dominfo, patch by Tobias Grosser!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84395
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 18 Oct 2009 02:05:42 +0000 (02:05 +0000)]
Support GoogleTest's "typed tests"
(http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide#Typed_Tests)
in lit.py. These tests have names like "ValueMapTest/0.Iteration", which broke
when lit.py os.path.join()ed them onto the path and then assumed it could
os.path.split() them back off. This patch shifts path components from the
testPath to the testName until the testPath exists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84387
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 18 Oct 2009 00:42:07 +0000 (00:42 +0000)]
Add a couple new testcases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84385
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 23:59:51 +0000 (23:59 +0000)]
replace a useless test with a useful one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84383
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 17 Oct 2009 23:56:18 +0000 (23:56 +0000)]
More warnings patrol: Another unused argument and more implicit
conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84382
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 17 Oct 2009 23:52:26 +0000 (23:52 +0000)]
Fix test/Bindings/Ocaml/vmcore.ml. When IRBuilder::CreateMalloc was removed,
LLVMBuildMalloc was reimplemented but with the bug that it didn't insert the
resulting instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84374
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 23:48:54 +0000 (23:48 +0000)]
inline isGEP away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84373
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 23:15:04 +0000 (23:15 +0000)]
Fix my -Asserts warning fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84372
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 21:53:27 +0000 (21:53 +0000)]
Teach vm core to more aggressively fold 'trunc' constantexprs,
allowing it to simplify the crazy constantexprs in the testcases
down to something sensible. This allows -std-compile-opts to
completely "devirtualize" the pointers to member functions in
the testcase from PR5176.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84368
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 21:51:19 +0000 (21:51 +0000)]
remove # uses from FileCheck lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84367
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 21:31:19 +0000 (21:31 +0000)]
rename test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84364
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 20:43:42 +0000 (20:43 +0000)]
Move UnescapeString to a static function for its sole client; its inefficient and broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84358
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 20:43:29 +0000 (20:43 +0000)]
Remove llvm::EscapeString, raw_ostream::write_escaped is much faster.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84357
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 20:43:19 +0000 (20:43 +0000)]
Use raw_ostream::write_escaped instead of EscapeString.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84356
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 20:43:08 +0000 (20:43 +0000)]
Add raw_ostream::write_escaped, for writing escaped strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84355
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sat, 17 Oct 2009 20:09:29 +0000 (20:09 +0000)]
First draft of the OptionPreprocessor.
More to follow...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84352
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sat, 17 Oct 2009 20:08:47 +0000 (20:08 +0000)]
This variable is never used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84351
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sat, 17 Oct 2009 20:08:30 +0000 (20:08 +0000)]
Disallow multiple instances of PluginPriority.
Several instances of PluginPriority in a single file most probably signifies a
programming error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84350
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sat, 17 Oct 2009 20:07:49 +0000 (20:07 +0000)]
-O[0-3] options should be also forwarded to opt and llc.
This will require implementing OptionPreprocessor to forbid invalid invocations
such as 'llvmc -O1 -O2'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84349
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 17 Oct 2009 19:43:45 +0000 (19:43 +0000)]
Emit newlines at the end of instructions too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84348
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 18:21:06 +0000 (18:21 +0000)]
Move StringMap's string has function into StringExtras.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84344
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 18:11:57 +0000 (18:11 +0000)]
Remove unnecessary include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84336
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 09:33:00 +0000 (09:33 +0000)]
Suppress -Asserts warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84327
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 17 Oct 2009 09:20:14 +0000 (09:20 +0000)]
Distinquish stack slots from other stack objects. They (and fixed objects) get FixedStack PseudoSourceValues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84326
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 17 Oct 2009 08:57:09 +0000 (08:57 +0000)]
Re-arrange some fields.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84324
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 08:12:36 +0000 (08:12 +0000)]
Add another required #include for freestanding .h files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84322
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 17 Oct 2009 07:53:04 +0000 (07:53 +0000)]
Revert 84315 for now. Re-thinking the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84321
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 17 Oct 2009 06:22:26 +0000 (06:22 +0000)]
Rename getFixedStack to getStackObject. The stack objects represented are not
necessarily fixed. Only those will negative frame indices are "fixed."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84315
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 17 Oct 2009 06:05:11 +0000 (06:05 +0000)]
80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 05:39:39 +0000 (05:39 +0000)]
Simplify some code (first hunk) and fix PR5208 (second hunk) by
updating the callgraph when introducing a call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 17 Oct 2009 04:47:42 +0000 (04:47 +0000)]
check in a bunch of content from TestingGuide. Part of PR5216
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84309
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 03:28:28 +0000 (03:28 +0000)]
llvm-as: Simplify, and don't create empty output files with -disable-output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84304
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 03:28:20 +0000 (03:28 +0000)]
Reclaim a lost month.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84303
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 17 Oct 2009 03:28:07 +0000 (03:28 +0000)]
Add required #includes for freestanding .h files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84302
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 17 Oct 2009 01:37:38 +0000 (01:37 +0000)]
Delete an obsolete comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84300
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Sat, 17 Oct 2009 01:18:07 +0000 (01:18 +0000)]
Remove MallocInst from LLVM Instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 17 Oct 2009 00:32:43 +0000 (00:32 +0000)]
Enhance CodePlacementOpt's unconditional intra-loop branch elimination logic
to be more general and understand more varieties of loops.
Teach CodePlacementOpt to reorganize the basic blocks of a loop so that
they are contiguous. This also includes a fair amount of logic for preserving
fall-through edges while doing so. This fixes a BranchFolding-ism where blocks
which can't be made to use a fall-through edge and don't conveniently fit
anywhere nearby get tossed out to the end of the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84295
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 17 Oct 2009 00:28:24 +0000 (00:28 +0000)]
Add a splice member function which accepts a range instead of a
single iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84294
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Sat, 17 Oct 2009 00:00:19 +0000 (00:00 +0000)]
Autoupgrade malloc insts to malloc calls.
Update testcases that rely on malloc insts being present.
Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84292
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 16 Oct 2009 23:12:25 +0000 (23:12 +0000)]
HeapAllocSRoA also needs to check if malloc array size can be computed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84288
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Fri, 16 Oct 2009 22:09:05 +0000 (22:09 +0000)]
Update tests to use FileCheck
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84282
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Fri, 16 Oct 2009 22:07:19 +0000 (22:07 +0000)]
Add test case for r84279
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84280
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Fri, 16 Oct 2009 22:05:48 +0000 (22:05 +0000)]
Allow widening of extract subvector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84279
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 16 Oct 2009 21:27:43 +0000 (21:27 +0000)]
Do not emit name entry for a pointer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84276
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 21:06:15 +0000 (21:06 +0000)]
Change createPostRAScheduler so it can be turned off at llc -O1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84273
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 21:02:20 +0000 (21:02 +0000)]
Add a CodeGenOpt::Less level to match -O1. It'll be used by clients which do not want post-regalloc scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84272
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 16 Oct 2009 20:59:35 +0000 (20:59 +0000)]
Move zext and sext casts fed by loads into the same block as the
load, to help SelectionDAG fold them into the loads, unless
conditions are unfavorable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84271
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 16 Oct 2009 18:45:49 +0000 (18:45 +0000)]
Parse PHI instruction with attached metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84264
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 16 Oct 2009 18:18:03 +0000 (18:18 +0000)]
If there is not any llvm instruction associated with each lexical scope encoded in debug info then create such scope on demand for variable info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84262
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 16 Oct 2009 18:08:17 +0000 (18:08 +0000)]
Invert isSafeToGetMallocArraySize check because we return NULL when we don't know the size.
Thanks to Duncan Sands for noticing this bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84261
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Fri, 16 Oct 2009 18:07:17 +0000 (18:07 +0000)]
Invert isSafeToGetMallocArraySize check because we return NULL when we don't know the size.
Thanks to Duncan Sands for noticing this bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 16 Oct 2009 16:30:58 +0000 (16:30 +0000)]
Update from Cristina, llvm-gcc doesn't build on the SPARC version of solaris
at the moment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84258
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 16:30:02 +0000 (16:30 +0000)]
Force triple in tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84257
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 16 Oct 2009 15:20:13 +0000 (15:20 +0000)]
Strip trailing white space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84256
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 16 Oct 2009 12:18:23 +0000 (12:18 +0000)]
Check that GVN performs this transform even if the calls
themselves are not marked readonly, but only the called
functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84253
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 16 Oct 2009 10:29:08 +0000 (10:29 +0000)]
Update CMake file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84252
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Fri, 16 Oct 2009 08:58:34 +0000 (08:58 +0000)]
Cleaned up some code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84251
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 06:18:09 +0000 (06:18 +0000)]
I am no spelling bee.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84250
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 06:11:08 +0000 (06:11 +0000)]
Enable post-alloc scheduling for all ARM variants except for Thumb1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84249
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 06:10:34 +0000 (06:10 +0000)]
If post-alloc scheduler is not enabled, it should return false, not true.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84248
91177308-0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Fri, 16 Oct 2009 05:42:28 +0000 (05:42 +0000)]
Indent code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84247
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 05:33:58 +0000 (05:33 +0000)]
Add comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84246
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 05:18:39 +0000 (05:18 +0000)]
80 column violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84244
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 16 Oct 2009 03:58:44 +0000 (03:58 +0000)]
Fix more NEON instruction encodings.
Patch by Johnny Chen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 16 Oct 2009 02:13:51 +0000 (02:13 +0000)]
Add half precision floating point support (float16) to APFloat,
patch by Peter Johnson! (PR5195)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84239
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 16 Oct 2009 02:06:30 +0000 (02:06 +0000)]
add haiku support, patch by Paul Davey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84238
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:58:23 +0000 (01:58 +0000)]
MC: Set symbol values in MachO MCStreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84236
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:58:15 +0000 (01:58 +0000)]
Minor formatting tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84235
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:58:03 +0000 (01:58 +0000)]
MC: Switch assembler API to using MCExpr instead of MCValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84234
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:57:52 +0000 (01:57 +0000)]
MC: Remove unneeded context argument to MCExpr::Evaluate*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84233
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:57:39 +0000 (01:57 +0000)]
MC: Tweak variable assignment diagnostics, and make reassignment of non-absolute
variables and symbols invalid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84232
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:34:54 +0000 (01:34 +0000)]
MC: When parsing a variable reference, substitute absolute variables immediately
since they are allowed to be redefined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84230
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:33:57 +0000 (01:33 +0000)]
MC: Move assembler variable values from MCContext to MCSymbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84229
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 16 Oct 2009 01:33:11 +0000 (01:33 +0000)]
MC: Switch MCContext value table to storing MCExprs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84228
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 16 Oct 2009 00:33:09 +0000 (00:33 +0000)]
When checking aliases between phi sources and V2, we know the sources are not themselves phi nodes. However, V2 may be. Call aliasCheck with V2 first to potentially eliminate a std::swap call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84226
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 15 Oct 2009 23:12:05 +0000 (23:12 +0000)]
Revert svn r80498 and replace it with a different solution. The only problem
I can see with the original code was that I forgot that this runs after
type legalization and hence the result type will always be i32. (Custom
legalization of EXTRACT_VECTOR_ELT is only enabled for vector types with
8- and 16-bit elements.)
Regarding the FIXME comment: any information about sign and zero-extension
should be captured by separate extension operations. The DAG combiner should
handle those to produce either VGETLANEu or VGETLANEs, and that seems to be
working now. If there are cases that we're missing, let me know.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84218
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 15 Oct 2009 22:36:18 +0000 (22:36 +0000)]
Dllexport stuff cleanup:
1. Emit external function type information for all COFF targets since it's
a feature of object format
2. Emit linker directives only for cygming (since this is ld-specific stuff)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84214
91177308-0d34-0410-b5e6-
96231b3b80d8
Sandeep Patel [Thu, 15 Oct 2009 22:25:32 +0000 (22:25 +0000)]
Branches must be the last instruction in a Thumb2 IT block. Approved by Evan Cheng.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84212
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 15 Oct 2009 21:57:47 +0000 (21:57 +0000)]
Fix encoding bits for N3VLInt3_QHS multiclass with 8-bit elements.
Patch by Johnny Chen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84206
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 15 Oct 2009 21:42:45 +0000 (21:42 +0000)]
Fix ARM memory operand parsing of post indexing with just a base register, that
is just "[Rn]" and no tailing comma with an offset, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84205
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 15 Oct 2009 20:49:47 +0000 (20:49 +0000)]
Fix a potential performance problem in placing ARM constant pools.
In the case where there are no good places to put constants and we fall back
upon inserting unconditional branches to make new blocks, allow all constant
pool references in range of those blocks to put constants there, even if that
means resetting the "high water marks" for those references. This will still
terminate because you can't keep splitting blocks forever, and in the bad
cases where we have to split blocks, it is important to avoid splitting more
than necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84202
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 15 Oct 2009 20:48:48 +0000 (20:48 +0000)]
More bits of the ARM target assembler for llvm-mc, code added to parse labels
as expressions, code for parsing a few arm specific directives (still needs
the MCStreamer calls for these). Some clean up of the operand parsing code
and adding some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84201
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 15 Oct 2009 20:23:21 +0000 (20:23 +0000)]
Remove X86Subtarget::IsLinux. It's no longer being used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84200
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Thu, 15 Oct 2009 20:14:52 +0000 (20:14 +0000)]
Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper
identifying the malloc as a non-array malloc. This broke GlobalOpt's optimization of stores of mallocs
to global variables.
The fix is to classify malloc's into 3 categories:
1. non-array mallocs
2. array mallocs whose array size can be determined
3. mallocs that cannot be determined to be of type 1 or 2 and cannot be optimized
getMallocArraySize() returns NULL for category 3, and all users of this function must avoid their
malloc optimization if this function returns NULL.
Eventually, currently unexpected codegen for computing the malloc's size argument will be supported in
isArrayMalloc() and getMallocArraySize(), extending malloc optimizations to those examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84199
91177308-0d34-0410-b5e6-
96231b3b80d8