Displaying 20 results from an estimated 6000 matches similar to: "Is ArrayRef supposed to be immutable?"
2017 Oct 01
2
Is ArrayRef supposed to be immutable?
+1, totally a bug. That’s the domain of MutableArrayRef.
-Chris
> On Oct 1, 2017, at 6:52 AM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> +1 seems like a bug
>
> On Sun, Oct 1, 2017 at 12:35 AM Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> It wraps a constant T* and a size_t, so
2017 Oct 01
0
Is ArrayRef supposed to be immutable?
It seems like ArrayRefs are supposed to be immutable (
However, as far as i can tell, the iterators are defined wrong to make this
true.
While
ArrayRef<int> Foo(Something);
Foo[0] = 5;
will give a compile time error.
something like:
ArrayRef<int> Foo(Something);
std::sort(Foo.begin(), Foo.end());
Will work fine.
Is this expected?
(FWIW: I expected this to only work with a
2019 May 03
3
ArrayRef vs SmallVectorImpl
It is suggested in the documentation that if you would have declared a
function parameter as SmallVector<Foo,N>&, it is better to instead declare
it as SmallVectorImpl<Foo>&.
This makes sense, but it seems to me that it is better still to declare it
as ArrayRef<Foo>; a quick test suggests it compiles to the same (highly
efficient) code, and adds a bit more flexibility in
2017 Feb 19
5
RFC: Adding llvm::ThinStream
Some background:
A while back while working on code to read / write PDB files, I came up
with Yet Another Stream Abstraction. Note that LLVM already has a few.
Off the top of my head, theres:
1) `MemoryBuffer` and its associated class hierarchy
2) `raw_ostream` and it's associated classes.
3) `DataExtractor` which is used for reading from a StringRef.
There's probably more, and
2014 Aug 22
4
[LLVMdev] Addressing const reference in ArrayRef
On Fri, Aug 22, 2014 at 10:16 AM, Duncan P. N. Exon Smith
<dexonsmith at apple.com> wrote:
>> On 2014-Aug-21, at 10:39, David Blaikie <dblaikie at gmail.com> wrote:
>>
>> On Thu, Aug 21, 2014 at 10:34 AM, Reid Kleckner <rnk at google.com> wrote:
>>> Is there some way we can get lifetime extension of temporaries to kick in
>>> here?
>>
2014 Aug 21
2
[LLVMdev] Addressing const reference in ArrayRef
On Thu, Aug 21, 2014 at 10:34 AM, Reid Kleckner <rnk at google.com> wrote:
> Is there some way we can get lifetime extension of temporaries to kick in
> here?
Nope - since the temporary is a subexpression - not the thing being declared.
>
>
> On Thu, Aug 21, 2014 at 8:05 AM, David Blaikie <dblaikie at gmail.com> wrote:
>>
>> Yeah - I suspect there are just
2014 Aug 22
2
[LLVMdev] Addressing const reference in ArrayRef
On Fri, Aug 22, 2014 at 11:22 AM, Duncan P. N. Exon Smith
<dexonsmith at apple.com> wrote:
>
>> On 2014-Aug-22, at 10:43, David Blaikie <dblaikie at gmail.com> wrote:
>>
>> Yep - the convenience of one-element->ArrayRef is "cute" at best, I
>> think. Having to wrap it doesn't seem detrimental. Would have to look
>> at some numbers,
2014 Jul 18
2
[LLVMdev] Bug in llvm/ADT/ArrayRef.h?
Hi,
I think I ran into a rather subtle bug inside llvm/ADT/ArrayRef.h which
only shows up when compiling the code with GCC-4.8 with switched-off
optimizations. (Both clang and GCC-4.7 don't trigger the bug.)
I already filed a bug against GCC-4.8 which was rejected by the GCC-folks
as being invalid, because the code (basically ArrayRef.h) "is doing
something bad - it's retaining a
2012 Feb 18
3
[LLVMdev] We need better hashing
On Fri, Feb 17, 2012 at 1:32 AM, Chris Lattner <clattner at apple.com> wrote:
> On Feb 17, 2012, at 12:26 AM, Talin wrote:
> > OK here's a patch with the latest, including unit tests. I've also tried
> to make the comments clear that this is intended for the case of "generic"
> key types, where you are either hashing multiple data types together, or
> you
2014 Aug 20
3
[LLVMdev] Addressing const reference in ArrayRef
Analyzing why GCC failed to build LLVM recently, one root cause lies
in definition of ArrayRef:
// ArrayRef.h:
ArrayRef(const T &OneElt) : Data(&OneElt), Length(1) {}
Here address of const reference is taken and stored to an object. It
is believed that live range of const reference is only at the function
call site, escaping of its address to an object with a longer live
range is invalid.
2012 Feb 18
0
[LLVMdev] We need better hashing
On Feb 18, 2012, at 1:11 AM, Talin wrote:
> + /// Add an ArrayRef of arbitrary data.
> + template<typename T>
> + GeneralHash& add(ArrayRef<T> ArrayVal) {
> + addBits(ArrayVal.begin(), ArrayVal.end());
> + return *this;
> + }
>
> Doesn't this have the same host-specificity problem, except that it will cause things that *are* stable to vary,
2014 Aug 21
2
[LLVMdev] Addressing const reference in ArrayRef
David Blaikie <dblaikie at gmail.com> writes:
> I seem to recall discussing this before - is there an existing llvm
> bug filed, another email thread or something (or perhaps it was just
> an IRC conversation)? It would be good to keep all the discussion
> together or at least reference the prior (llvm community) discussion.
I'm not sure if it's been discussed before,
2014 Aug 21
2
[LLVMdev] Addressing const reference in ArrayRef
Yeah - I suspect there are just too many cases where we use this ctor
correctly: where the ArrayRef is only a temporary to a function call.
Perhaps this is a problem for which the best solution is a clang-tidy
checker - though I'm not sure if we have good integration there yet.
(& yes, Andreas, that looks like the previous thread - thanks!)
On Thu, Aug 21, 2014 at 5:09 AM, Andreas Weber
2015 Nov 05
2
Why StringRef is not a ArrayRef<char>
Hi,
Why is StringRef not an ArrayRef<char> extension? That might simplify some
interfaces.
Cheers,
Paweł
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151105/ef56dcdc/attachment.html>
2017 Feb 22
2
RFC: Adding llvm::ThinStream
Haven't got to this but would like to take a look/review it before it goes
in.
*skimming over some of the description*
Sounds like 'stream' might not be the right terminology - since they return
pointers into data that (I think) remains valid for the life of the stream?
(this also makes me wonder a bit about memory usage if the cross-block
operation is used a lot (causing
2012 Feb 17
4
[LLVMdev] We need better hashing
OK here's a patch with the latest, including unit tests. I've also tried to
make the comments clear that this is intended for the case of "generic" key
types, where you are either hashing multiple data types together, or you
don't know in advance what the data type will be - for cases such as
strings where a tailored algorithm is available, you should use that
instead of
2012 Feb 17
0
[LLVMdev] We need better hashing
On Feb 17, 2012, at 12:26 AM, Talin wrote:
> OK here's a patch with the latest, including unit tests. I've also tried to make the comments clear that this is intended for the case of "generic" key types, where you are either hashing multiple data types together, or you don't know in advance what the data type will be - for cases such as strings where a tailored algorithm
2012 Jan 22
2
[LLVMdev] CreateGlobalStringPtr giving linker errors
Hi,
I am trying to use some LLVM API in my C++ code, and I end up getting
linker errors. I am working on Apple MacOSX Lion. Using g++ for the
compile. It is the CreateGlobalStringPtr which is throwing the error. This
is LLVM 3.0.
Here's the codeI am trying to use some LLVM API in my C++ code, and I end
up getting linker errors. I am working on Apple MacOSX Lion. Using g++ for
the compile. It
2015 Jan 20
2
[LLVMdev] Bug in InsertElement constant propagation?
Does anybody else have an opinion on this issue? I'm planning to submit a patch which would add a new get method for ConstantDataVector taking an ArrayRef<Constant*> and use that in the few places in constant propagation where convertToFloat is used.
Let me know if you think there is a more obvious way to do it.
Right now the only way to create a ConstantDataVector are those method:
2016 Aug 24
2
Pointer to temporary issue in ArrayRefTest.InitializerList
Hi all-
I am mostly doing work in Clang (and am new there), so I apologize if this isn't the proper place to mention this. I appreciate guidance in advance.
I was looking into some of the unit tests, and noticed that the ArrayRefTest.InitializerList, and thus the InitializerList constructor of ArrayRef (under normal use-case) hit undefined behavior. The test does the following: